From 04e1b6fcbfc071e5c54138ab155becd63aad4daa Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Fri, 9 Jan 2009 11:50:57 +0000 Subject: [PATCH] - Cleaned up git-svn-id: http://moon:8086/svn/vhdl/trunk@215 cc03376c-175c-47c8-b038-4cd826a8556b --- lib/radio/ddc/sim/tb_ddc.wdo | 8 ++++++-- lib/radio/ddc/sim/tb_results.m | 37 ++++++++++++++++++++-------------- 2 files changed, 28 insertions(+), 17 deletions(-) diff --git a/lib/radio/ddc/sim/tb_ddc.wdo b/lib/radio/ddc/sim/tb_ddc.wdo index a849e62..9616739 100644 --- a/lib/radio/ddc/sim/tb_ddc.wdo +++ b/lib/radio/ddc/sim/tb_ddc.wdo @@ -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} diff --git a/lib/radio/ddc/sim/tb_results.m b/lib/radio/ddc/sim/tb_results.m index 3274d28..2e91480 100644 --- a/lib/radio/ddc/sim/tb_results.m +++ b/lib/radio/ddc/sim/tb_results.m @@ -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;