带通滤波器中心频率怎么求_滤波器的带宽是什么

带通滤波器中心频率怎么求_滤波器的带宽是什么qsj8362234发表于2012-9-2712:08你索性把你的代码发我把clc;closeall;clearall;fs=20000;%采样频率dt=1/fs;f1=1000;f2=2000;%两个信号的频率a=[1010101100];%信号,取整nn=length(a);g1=a;g2=~a;%信号反转和…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

qsj8362234 发表于 2012-9-27 12:08 bbd016eb636182ff59f287f6e5567aa8.gif

你索性把你的代码发我把

clc ;close all; clear all;

fs=20000;   %采样频率

dt=1/fs;

f1=1000;

f2=2000;        %两个信号的频率

a=[1 0 1 0 1 0 1 1 0 0];   %信号,取整

nn=length(a);

g1=a;

g2=~a;            %信号反转和g1反向,01取反

g11=(ones(1,20000))’*g1;    %抽样

g1a=g11(:)’; %将0 1信号每个码元分为20000份

g21=(ones(1,20000))’*g2;

g2a=g21(:)’;

t=0:1/fs:10-dt;

t1=length(t);

fsk1=g1a.*cos(2*pi*f1.*t);

fsk2=g2a.*cos(2*pi*f2.*t);

fsk=fsk1+fsk2;              %产生的信号

SNR=20; % 信噪比

randn(‘state’,1945724);

% 在已调信号中加入高斯白噪声,信噪比为10dB

fsk_t=awgn(fsk,SNR,’measured’,[],’dB’);

y1=fft(fsk_t);

y2=fftshift(y1);

n=(-length(fsk_t)/2:length(fsk_t)/2-1)*fs/length(fsk_t);

figure(1);

subplot(211);

plot(t,fsk_t);

subplot(212);

plot(n,abs(y2));

N=81; %阶数

p=(N-1)/2;%采样点数

% 期望取样序列

Hd1=[zeros(1,3) 0.5 ones(1,1) 0.75 0.25 zeros(1,34)];  %加过渡点的带通设置,滤出1000的频率

Hd2=[zeros(1,7) 0.5 ones(1,1) 0.75 0.25 zeros(1,30)]; %加过渡点的带通设置,滤出2000的频率

u=0.002;

delta=4.62e-5;%误差

w1=randn(1,p+1)’;%一列p+1个随机数,初始权值

w2=randn(1,p+1)’

wi=[0:p]*pi/p;%0-pi,p+1个

op=zeros(p+1,p+1);%p+1的0矩阵

% op(1,:)=1;

nrow=[0 1:p]’;%一列P+1行

c=cos(nrow*wi);

E1=3;%总误差

while(E1>delta)    %误差大,调整

E1=0;

for k=1:p+1;%每个采样点处与期望值比较

y1=w1’*c(:,k);%一个数值

er1=abs(Hd1(k))-y1;%与期望序列的误差

%   E=E+1/2*er1*er1;

E1=E1+er1*er1;

w1=w1+u*er1*c(:,k);%更新权值

end

end

h1=zeros(1,p+1);

h1(p+1)=w1(1);

for k=p:-1:1

h1(k)=w1(p+2-k)/2;

end

h1=[h1 h1(p:-1:1)];  %duicheng

[HH1,ww1]=freqz((h1));

% subplot(2,2,3);

% stem(h);   xlabel(‘滤波器的系数’);

figure(2);

subplot(2,2,1);  plot(ww1,abs((HH1)));  xlabel(‘幅频特性’);grid on;

set(gca,’XTick’,0:pi/N*2:pi)

set(gca,’XTickLabel’,{0:N/2});

subplot(2,2,2);  plot(ww1,20*log10(abs(HH1)));  xlabel(‘衰减特性’);grid on;

set(gca,’XTick’,0:pi/N*2:pi)

set(gca,’XTickLabel’,{0:N/2});

set(gcf,’color’,’w’)

E2=3;

while(E2>delta)    %误差大,调整

E2=0;

for k=1:p+1;%每个采样点处与期望值比较

y2=w2’*c(:,k);%一个数值

er2=abs(Hd2(k))-y2;%与期望序列的误差

%              E=E+1/2*er1*er1;

E2=E2+er2*er2;

w2=w2+u*er2*c(:,k);%更新权值

end

end

h2=zeros(1,p+1);

h2(p+1)=w2(1);

for k=p:-1:1

h2(k)=w2(p+2-k)/2;

end

h2=[h2 h2(p:-1:1)];  %duicheng

[HH2,ww2]=freqz((h2));

% subplot(2,2,3);

% stem(h);   xlabel(‘滤波器的系数’);

figure(3);

subplot(2,2,1);  plot(ww2,abs((HH2)));  xlabel(‘幅频特性’);grid on;

set(gca,’XTick’,0:pi/N*2:pi)

set(gca,’XTickLabel’,{0:N/2});

subplot(2,2,2);  plot(ww2,20*log10(abs(HH2)));  xlabel(‘衰减特性’);grid on;

set(gca,’XTick’,0:pi/N*2:pi)

set(gca,’XTickLabel’,{0:N/2});

set(gcf,’color’,’w’)

%滤出的1000HZ的波形和频谱

figure(4);

lv1=filter(h1,1,fsk_t);

y3=fft(lv1);

y4=fftshift(y3);

n1=(-length(lv1)/2:length(lv1)/2-1)*fs/length(lv1);

subplot(211);

plot(t,lv1);

subplot(212);

plot(n1,abs(y4));

%滤出的2000HZ的波形和频谱

figure(5)

lv2=filter(h2,1,fsk_t);

y5=fft(lv2);

y6=fftshift(y5);

n2=(-length(lv2)/2:length(lv2)/2-1)*fs/length(lv2);

subplot(211);

plot(t,lv2);

subplot(212);

plot(n2,abs(y6));

%DFT求幅值

for i=1:nn;

I1(i)=0;

Q1(i)=0;

for j=1+(i-1)*20000:18000+(i-1)*20000;

I1(i)=I1(i)+lv1(j)*cos(2*pi*1000*j/20000);

Q1(i)=Q1(i)+lv1(j)*sin(2*pi*1000*j/20000);

end;

I1(i)=I1(i)/18000;

Q1(i)=Q1(i)/18000;

A1(i)=sqrt(I1(i)^2+Q1(i)^2);

end;

for i=1:nn;

I2(i)=0;

Q2(i)=0;

for j=1+(i-1)*20000:18000+(i-1)*20000;

I2(i)=I2(i)+lv2(j)*cos(2*pi*2000*j/20000);

Q2(i)=Q2(i)+lv2(j)*sin(2*pi*2000*j/20000);

end;

I2(i)=I2(i)/18000;

Q2(i)=Q2(i)/18000;

A2(i)=sqrt(I2(i)^2+Q2(i)^2);

end;

%判决

for i=1:nn;

if A1(i)>A2(i);

B(i)=1;

else

B(i)=0;

end

end

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/196946.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号