- Cleaned up

git-svn-id: http://moon:8086/svn/vhdl/trunk@215 cc03376c-175c-47c8-b038-4cd826a8556b
This commit is contained in:
2009-01-09 11:50:57 +00:00
parent 8106295641
commit 04e1b6fcbf
2 changed files with 28 additions and 17 deletions
+6 -2
View File
@@ -91,8 +91,12 @@ add wave -noupdate -format Literal -radix decimal /tb_ddc/uut/cfir_h_data
add wave -noupdate -format Literal /tb_ddc/uut/cfir_h_addr
add wave -noupdate -format Logic /tb_ddc/uut/cfir_h_we
add wave -noupdate -format Logic /tb_ddc/uut/hclr_mode
add wave -noupdate -format Literal -radix decimal /tb_ddc/uut/cfir_i/coef_addr
add wave -noupdate -format Literal /tb_ddc/uut/cfir_i/coef_we
add wave -noupdate -format Literal /tb_ddc/uut/cfir_i/coef_din
add wave -noupdate -format Literal -radix decimal /tb_ddc/uut/cfir_i/coef_dout
TreeUpdate [SetDefaultTree]
WaveRestoreCursors {{Cursor 1} {186030000 ps} 0}
WaveRestoreCursors {{Cursor 1} {43136228 ps} 0}
configure wave -namecolwidth 150
configure wave -valuecolwidth 100
configure wave -justifyvalue left
@@ -106,4 +110,4 @@ configure wave -gridperiod 100
configure wave -griddelta 40
configure wave -timeline 1
update
WaveRestoreZoom {183411575 ps} {200873075 ps}
WaveRestoreZoom {632157 ps} {934886 ps}
+22 -15
View File
@@ -1,36 +1,43 @@
% Read data
function tb_results()
fa = 100.0;
f = TEXTREAD('freq.txt')*1E-6
R = 64;
R = TEXTREAD('ratio.txt');
N = 3;
M = 1;
fa_dec = fa/R
N_pfir = 63;
I_out_dec = TEXTREAD('i_dec.txt')';
Q_out_dec = TEXTREAD('q_dec.txt')';
I_out_fir = TEXTREAD('i_fir.txt')';
Q_out_fir = TEXTREAD('q_fir.txt')';
N_dec = length(I_out_dec)-2*N_pfir;
N_fft_dec = N_dec
N_fft2_dec = N_fft_dec/2;
fft_y2_dec = 2/N_fft_dec*abs(fft(I_out_dec(2*N_pfir+1:N_fft_dec+2*N_pfir).*hann(N_fft_dec)'));
fft_y2_fir = 2/N_fft_dec*abs(fft(I_out_fir(2*N_pfir+1:N_fft_dec+2*N_pfir).*hann(N_fft_dec)'));
pfir_b = sinc(0.2*(-(N_pfir-1)/2:1:(N_pfir)/2));
pfir_b = pfir_b/sum(pfir_b).*blackman(N_pfir)';
I_out_dec_pfir = filter(pfir_b, 1, I_out_dec);
Q_out_dec_pfir = filter(pfir_b, 1, Q_out_dec);
fft_y2_dec_pfir = 2/N_fft_dec*abs(fft(I_out_dec_pfir(2*N_pfir+1:N_fft_dec+2*N_pfir).*hann(N_fft_dec)'));
I_out_dec = I_out_dec;
Q_out_dec = Q_out_dec;
fft_y2_dec = 2/N_fft_dec*abs(fft(I_out_dec(2*N_pfir+1:N_fft_dec+2*N_pfir).*hann(N_fft_dec)'));
wavwrite(0.45*[I_out_fir'-mean(I_out_fir) Q_out_fir'-mean(Q_out_fir)], 8000, 16, 'iq_cfir.wav');
wavwrite(0.45*[I_out_dec'-mean(I_out_dec) Q_out_dec'-mean(Q_out_dec)], 8000, 16, 'iq.wav');
% Output
close all;
plot(fa/(R*N_fft_dec)*(0:N_fft2_dec),20*log10(fft_y2_dec(1:N_fft2_dec+1)), '-', fa/(R*N_fft_dec)*(0:N_fft2_dec),20*log10(fft_y2_dec_pfir(1:N_fft2_dec+1)), '-'); grid;
plot(1:length(I_out_dec), I_out_dec, 1:length(Q_out_dec), Q_out_dec); grid;
figure;
cic_plot(M, N, R);
figure;
plot(fa/(R*N_fft_dec)*(0:N_fft2_dec),20*log10(fft_y2_fir(1:N_fft2_dec+1)), '-', fa/(R*N_fft_dec)*(0:N_fft2_dec),20*log10(fft_y2_dec(1:N_fft2_dec+1)), '-');
legend('CFIR', 'no CFIR');
xlabel('MHz');
figure;
plot(1:length(I_out_dec_pfir), I_out_dec_pfir, 1:length(Q_out_dec_pfir), Q_out_dec_pfir); grid;
figure;
freqz(pfir_b, 1, 1000);
figure;
plot(pfir_b); grid;
grid;