MATLAB的一些使用问题,们函数,如何优化功率谱,这和通信原理的知识点有点类似,感觉并不能说明信号与系统的相关性证明
clc,clear,close all;
T=0.38; %过渡带采样值为0.38时,通带最大衰减约为0.47dB,阻带最小衰减约为-43.4411dB
Bt=0.1*pi;wp=0.3*pi; %数字频率参数
m=1;
N=ceil((m+1)*2*pi/Bt); %按滤波器长度公式估计采样点数N
N=N + mod( N + 1,2 ); %使N为奇数
Np=fix(wp/(2*pi/N)); %通带上的采样点数
Ns=N-2*Np-1; %阻带上的采样点数
Ak=[ones(1,Np+1),zeros(1,Ns),ones(1,Np)];
Ak(Np+2)= T; Ak(N-Np)=T ;
thetak=-pi*(N-1)*(0:N-1)/N;
Hk=Ak.*exp(j*thetak);%构造频域采样向量Hd(k)
hn=real(ifft(Hk)); %求时域单位脉冲响应
Hw = fft(hn,1024); %用FFT计算DFT频率响应函数
wk= 2*pi*(0:1023)/1024;
Hgw = Hw.*exp(j*wk*(N-1)/2); %计算幅频响应
Rp=max(20*log10(abs(Hgw)));
hgmin=min(real(Hgw ));Rs=20*log10(abs(hgmin));
Aw=[1,1,0,0,1,1]; wk1=[0,wp,wp,2*pi-wp,2*pi-wp,2*pi]/pi;
subplot(3,2,1); plot(wk1,Aw ); axis( [0,2,-0.2,1.2] );
xlabel('\omega/pi');ylabel('Hg(k)');
hold on
wk2=(0:N-1)*2/N; plot(wk2,Ak,'.');
n=0 :N-1;
subplot(3,2,3); stem(n,hn,'.');
axis( [0,65,-0.2,0.5] ); xlabel('n'); ylabel('h(n)');
subplot(3,2,5); plot(wk/pi,20*log10(abs(Hgw)));
axis([0,1,-60,3]); grid on; xlabel('\omega/pi');ylabel('20lg| Hg(O)|');