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

📄 firbynna.m

📁 此程序为本人编写的神经网络法设计1型FIR滤波器的程序
💻 M
字号:

clc ;close all; clear all;
N=31;
p=(N-1)/2;
E=3;

Hd=[zeros(1,12) 0.25 0.78 ones(1,13) 0.78 0.25 zeros(1,12)];  %加过渡点的带通设置
Hd=[ones(1,12)  1 1  ones(1,13) 0 1 ones(1,12)];  %加过渡点的带通设置
Hd=[ones(1,12)  0  ones(1,13)  0 ones(1,12)];  %加过渡点的带通设置
Hd=[1 ones(1,7)  0  ones(1,14)  0 ones(1,7)];  %加过渡点的带通设置
% Hd=[1 ones(1,6) 0.8 0 0.8 ones(1,12) 0.8  0  0.8 ones(1,6)];  %加过渡点的带通设置
% Hd=[1 ones(1,6) 0.6 0 0.6 ones(1,12) 0.6  0  0.6 ones(1,6)];  %加过渡点的带通设置


u=0.002;
delta=4.62e-5;
w=randn(1,p+1)';
wi=[0:p]*pi/p;
op=zeros(p+1,p+1);
% op(1,:)=1;
nrow=[0 1:p]'
op=cos(nrow*wi);
disp('看看op的大小');
size(op);

w_=w'
kk=1;
while(E>delta)    
         E=0;          
         for k=1:p+1;
             y=w'*op(:,k);
             er1=abs(Hd(k))-y;
%              E=E+1/2*er1*er1;
             E=E+er1*er1;
             w=w+u*er1*op(:,k);
         end     
         kk=kk+1;            
 end
 
%  disp(['循环的次数n=' int2str(kk)]);
%  title(['N=' int2str(N)]);
disp(['循环的次数n=  ' int2str(kk) '次']);
 


 
  h=zeros(1,p+1);
      h(p+1)=w(1);
      for k=p:-1:1
          h(k)=w(p+2-k)/2;
      end
      h=[h  h(p:-1:1)]
      
[HH,ww]=freqz((h));
% subplot(2,2,3); 
% stem(h);   xlabel('滤波器的系数');
subplot(2,2,1);  plot(ww,abs((HH)));  xlabel('幅频特性');grid on;
set(gca,'XTick',0:pi/N*2:pi) 
set(gca,'XTickLabel',{0:N/2});
subplot(2,2,2);  plot(ww,20*log10(abs(HH)));  xlabel('衰减特性');grid on;
set(gca,'XTick',0:pi/N*2:pi) 
set(gca,'XTickLabel',{0:N/2});
set(gcf,'color','w')


          
       
      
    

⌨️ 快捷键说明

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