📄 cvsd_test.m
字号:
clear all;
close all;
music_input = wavread('num_16ksps16bit.wav');
% music_input = sin(2*pi*1000/16000*[1:16000]);
% music_input = music_input';
% music_input = 0.5*sin(2*pi*1000/16000*[1:16000]) + 0*sin(2*pi*2000/16000*[1:16000]) + 0*sin(2*pi*3000/16000*[1:16000]) + 0*sin(2*pi*4000/16000*[1:16000]);
% music_input = music_input';
figure(1);
plot(music_input);
% wavplay(music_input,16000);
freq_music = fft(hilbert(music_input));
real_freq = abs(freq_music);
figure(2);
plot(real_freq);
sw_enc_bit_dly_1_01 = 0;
sw_enc_bit_dly_2_01 = 0;
sw_step_01 = 0;
sw_prdct_01 = 0;
num_input = size(music_input);
for i = 1:num_input(1)%/3
sw_smpl_val = music_input(i);
[cvsd_encode_data,sw_enc_bit_dly_1_01,sw_enc_bit_dly_2_01,sw_step_01,sw_prdct_01] = cvsd_encode(sw_smpl_val,sw_enc_bit_dly_1_01,sw_enc_bit_dly_2_01,sw_step_01,sw_prdct_01);
bit_encode(i) = cvsd_encode_data;
end
sw_enc_bit_dly_1 = 0;
sw_enc_bit_dly_2 = 0;
sw_step = 0;
sw_rcnstrct_dly_1 = 0;
sw_rcnstrct_dly_2 = 0;
for i = 1:num_input(1)%/3
sw_enc_bit = bit_encode(i);
[cvsd_decode_data,sw_enc_bit_dly_1,sw_enc_bit_dly_2,sw_step,sw_rcnstrct_dly_1,sw_rcnstrct_dly_2] = cvsd_decode(sw_enc_bit,sw_enc_bit_dly_1,sw_enc_bit_dly_2,sw_step,sw_rcnstrct_dly_1,sw_rcnstrct_dly_2);
sound_out(i) = cvsd_decode_data;
end
freq_music = fft(hilbert(sound_out));
real_freq = abs(freq_music);
figure(3);
plot(real_freq);
figure;
plot(sound_out);
% wavplay(sound_out,16000);
% lowpass filter
figure;
N = 32;
F = [0, 0.2, 0.3, 1];
A = [1, 1, 0, 0];
LF_coefficient = firls(N,F,A);
for i = 1:2:4
plot([F(i) F(i+1)],[A(i) A(i+1)],'--'), hold on
end
[H,k] = freqz(LF_coefficient,1,512,2);
plot(k,abs(H)), grid on, hold off;
legend('Ideal','firls Design')
% fdatool
sound_out_filter = conv(LF_coefficient,sound_out);
freq_out_filter = fft(hilbert(sound_out_filter));
real_freq_out_filter = abs(freq_out_filter);
figure;
plot(real_freq_out_filter);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -