⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fg_05_12.m

📁 英文书《Digital Signal Processing with Examples in MATLAB》附带的MATLAB实例
💻 M
字号:
% fg_05_12   Complete filtering example.
N=1000; pos=.65*N;
Nw=127; L=(Nw-1)/2;
w=window(Nw,'hamming');
% High-frequency noise.
an=sqrt(3000);
randn('seed',0);
b=fir_weights(Nw,2,5,.3);
noise=filter(b,1,an*randn(1,N+Nw));
noise=noise(Nw+1:N+Nw);
% Signal.
%b=w.*fir_weights(Nw,3,.1,.2);
b=fir_weights(Nw,3,5,.1,.2);
sig=filter(b,1,[zeros(1,pos+L),100,zeros(1,N-pos+L)]);
sig=sig(Nw+1:N+Nw);
% Filtered signal + noise.
%b=w.*fir_weights(Nw,1,.25);
b=fir_weights(Nw,1,5,.25);
y=filter(b,1,sig+noise);
% Subplot 1.
sp_fig(1);
subplot(2,1,1);
axis([0 N -200 200]);
set(gca,'fontsize',16);
line([0:N-1],sig+noise,'color','r'); grid;
ylabel('Receiver output');
% Subplot 2.
subplot(2,1,2);
axis([-L N-L -20 20]);
set(gca,'fontsize',16);
line((-L:N-L-1),y,'color','b'); grid;
ylabel('Filtered version');
xlabel('Time (ns)')
% return

% Signal plus noise
sp_fig(2,8,3);
axis([0 N -200 200]);
set(gca,'position',[0.11 0.2 1.01-.2 0.77-.11]);
set(gca,'fontsize',16);
plot([0:N-1],sig+noise,'r'); grid;
ylabel('Receiver output');
xlabel('Time (ns)')
%return

% Signal & noise spectra.
Pn=pds(noise,noise,200,5,.95);
dBn=10*log10(Pn);
Ps=pds(sig,sig,200,5,.95);
dBs=10*log10(Ps);
sp_fig(3,8,4);
v=[0:100]/200;
h=plot(v,dBn(1:101),'r',v,dBs(1:101),'b'); grid;
set(gca,'fontsize',16);
set(h,'linewidth',1.5);
xlabel('\nu (Hz-s)'); ylabel('Power in dB');
set(gca,'fontsize',16);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -