ajuda no FFT!

N

newbie_1

Guest
oi,
Eu criei um ideal ADC 20bit e 20bit DAC utilizando veriloga e testou-os com uma sinwave 15kHz como entrada, a freq clk é 12.5MHz.A saída do DAC foi despejado da cadência como out222.dat usando ocnPrint com um intervalo de tempo de 80ns.
i wote um programa de matlab (snr_out2a.m) e traçar o espectro do sinal de saída, mas o espectro é coz totalmente errado o SNR é realmente pobre e realmente ele deve ser de pelo menos 120dB.
por favor me diga o que está errado com o programa, e tenho algumas perguntas:
1.Qual deve ser a freqüência de amostragem no programa MATLAB?deveria ser a mesma que a utilizada no anúncio e da?
2.Os dados objecto de dumping de cadência não cobrir algumas num número inteiro de períodos, então eu deveria usar alguma função janela?Como cerca de hann?Hanning, e se eu uso, é o meu usando como line19 correto?e as amostras, enquanto os dados não foi suficiente, então como eu posso fazer pontos num muito maior de FFT?

muito obrigado
newbie
Desculpe, mas você precisa de login para ver esta penhora

 
Você deve definir o valor da taxa de amostra em MATLAB para ser o mesmo que o seu hardware.

Sim, você deve aplicar-se uma janela antes de fazer uma FFT de dados com um número não-inteiro de amostras.Seu Hann () código parece bem, mas você atribuir o Resut data2 para que você não use em qualquer lugar.

Funções janela diferente dar atenuação sidelobe diferentes.Você deve escolher uma janela que se adapte às suas necessidades.De 120 dB, eu suponho que você poderia usar uma janela de Kaiser com um beta de grandes dimensões.

"... Desde que os dados de amostras não é suficiente, então como eu posso fazer pontos num muito maior de fft?"
Eu não entendo a pergunta.Por favor reformular.

Aqui está uma outra abordagem:
Código:

out222.dat de carga;

out222 = out222 (1:5000,:);% aparar os dados

y = out222 :), 2); dados%

N = length (y);% número de pontos

fs = 12.5e6;% de taxa de amostragem

H = fft (y .* kaiser (N, 10)); janela% desnecessárias se os dados tem ciclos inteiros

freq = fs * (0: N / 2) / N;

subplot (2,1,1), plot (freq, 20 * log10 (2 / N * abs (h (1: N / 2 1 )))); xlabel ( 'Hz');

subplot (2,1,2), plot (y);
 
oi echo47
realmente muito obrigado pela sua resposta.
e é um erro que eu não uso data2.
ea questão é, se eu usar janela de Hann e porque os dados de entrada tem apenas o número limitado de pontos, por exemplo, 6000 pontos, então como eu posso fazer 16384 pontos de FFT ainda usando janela de Hann?

e você pode me dizer por que kaiser u uso e utilização beta tão alta?

realmente muito obrigado.

newbie

 
Eu ainda não entendi sua pergunta sobre o número de pontos.Você pode aplicar qualquer tipo de janela para qualquer número de pontos, e você pode fazer uma FFT de qualquer número de pontos (apesar de potências de dois são geralmente mais rápido).

Kaiser é uma janela conveniente ajustável.Um beta alto dá lóbulos laterais inferiores, mas mais do lóbulo principal.Você pode escolher qualquer janela atenda às suas necessidades.

 

Welcome to EDABoard.com

Sponsor

Back
Top