首页 > 编程知识 正文

基于matlab的语音信号处理,matlab设计滤波器并且使用

时间:2023-05-04 06:39:16 阅读:58420 作者:4885

仿真匹配滤波器的FFT-IFFT的实现,采用矩形脉冲信号,观察滤波前后的波形,分析匹配滤波器对矩形脉冲的压缩前后的性质。

FFT实现匹配滤波器的原理图如下图所示,对x[n]和h[n]补零,然后进行n点FFT,相乘进行ifft。 得到的y[n]是滤波信号,实际上是FFT实现线性卷积的过程,对x[n]进行匹配滤波是滤波脉冲函数和卷积运算。

1、产生矩形脉冲信号。 这里,使用正弦波和脉冲信号进行调制,获得将载波信号与脉冲信号相乘进行调制的矩形脉冲。 下图是调制的信号及其频谱图。 这里的光谱图是正弦波的光谱图,是一条谱线,信号频率为400Hz。 由于没有进行fftshift,所以没有将零频率分量移动到原点,所以100Hz也有谱线。

2 .产生匹配滤波器的脉冲响应。 由于该信号的对称性,此时的匹配滤波器的冲激响应等于原始信号的一个周期的值。 因此,如果直接写入匹配滤波器的冲激响应,冲激响应当然可以通过信号的反褶边共轭获得。

h=conj(fliplr(s ) ); 经过%匹配滤波的系数函数3首先通过线性卷积实现匹配滤波,并在对s(t )和h直接进行卷积运算之后得到向下舍入输出信号。

Clin=ConV(s,h ); Clin_1=clin(1:250; 4、用FFT实现匹配滤波,如上述原理图所示,取零、FTT、IFFT、截止后得到输出信号。

如下图所示,输出信号上为卷积运算得到的输出信号,下为FFT得到的输出信号。

N1=Length(s; N2=长度(h ); N=N1 N2-1; xk=FFT(s,n ); hk=FFT(h,n ); YK=XK.*HK; yt=IFFT(yk,n ); yt1=yt(1:250;

从图中可以看出,在对矩形脉冲信号进行匹配滤波器之后,信号的时间宽度不减少,对雷达信号进行匹配滤波器之后,分辨率不提高,脉冲压缩比为1,信噪比不提高。

clcclearclose allFs=500; %采样率500HzTs=1/Fs; t0=0.1; t=0:Ts:0.5-Ts; %载波信号x=(sin(2*pi*400*t )1)/2; %sin(2*pi*20*t ); figure(1) subplot (3,1,1 ); plot(t,x ) xlabel(time ) seconds ) (ylabel ) amplitude (title )载波/脉冲信号) hold on%编码信号j=(square )2*pi plot(t hold offs=x.*j; subplot(3、1、2 ); plot(t,s ) xlabel (title ) seconds ) ) ylabel (amplitude ) (title ) (调制信号) ) y=fft(x ) x; fs=1/Ts; f=(03360长度(y )-1 ) fs /长度(y ); subplot(3、1、3 ); plot(f,ABS(y ) ) xlabel('Frequency ) Hz ) ) MF响应函数t2=0:Ts:0.1-Ts; h=(sin )2*pi*400*T2 )1)/2; figure(2; plot(T2,h ) xlabel(time ) seconds ) (ylabel ) amplitude (title ) FM响应) %线性卷积clin=conv(s ) s,h ); Clin_1=clin(1:250; figure(3; subplot (2,1,1 ); plot(t,clin_1) xlabel (title ) seconds () ) ylabel () amplitude () )线性卷积) %通过FFT实现线性卷积。 N1=Length(s; N2=长度(h ); N=N1 N2-1; xk=FFT(s,n ); hk=FFT(h,n ); YK=XK.*HK; yt=IFFT(yk,n ); yt1=yt(1:250; subplot(2、1、2 ); 使用plot(t,yt1 ) xlabel(time ) seconds ) ) ylabel (amplitude ) ) title (FFT进行匹配滤波) )

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。