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

带通滤波器中心频率怎么求_滤波器的带宽是什么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

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • VIM中的保存和退出,VIM退出命令,如何退出vim编辑,VIM命令

    VIM中的保存和退出,VIM退出命令,如何退出vim编辑,VIM命令在Linux中使用vim时,输入vimxxx.file输入好文件内容之后,怎么保存呢?按ESC,左下角就可以进行输入:w保存但不退出:wq保存并退出:q退出:q!强制退出,不保存:e!放弃所有修改,从上次保存文件开始再编辑命令历史…

    2022年4月27日
    41
  • seekBar实现滑动解锁[通俗易懂]

    seekBar实现滑动解锁[通俗易懂]今天android项目里突然要做一个滑动解锁的控件,nm,ui出图就喜欢按照IOS上的控件来,这次也不例外,不过IOS上的滑动解锁效果确实还是不错。好了,废话不多说,上代码。

    2022年6月24日
    20
  • css3中的calc()

    css3中的calc()

    2022年1月31日
    43
  • ORA-01722: invalid number

    ORA-01722: invalid number

    2021年11月15日
    52
  • 压缩文件密码暴力破解——cRARk使用方法

    压缩文件密码暴力破解——cRARk使用方法cRARk使用方法压缩文件如果忘记密码就需要使用暴力破解的方法进行破解,因为使用了加密的手段,是无法绕过密码验证的。cRARk是一款开源的功能强大的rar,7z类压缩软件的破解工具,支持GPU加速。官网地址目前有命令行版本和windows的GUI版本。使用方法在官网下载命令行版本GUI版本注意:GUI版本必须有命令行版本下才能运行GUI使用命令行版本下载解压,提示需要输入密码,但是实际上密码为空。或者为UTF-16。(crark55.rar)然后解压GUI版本,里面只有一个可运

    2022年4月28日
    1.3K
  • 推荐几款MySQL图形化客户端管理工具「建议收藏」

    推荐几款MySQL图形化客户端管理工具「建议收藏」MySQL是一个款非常流行的关系型数据库管理系统,平时工作中会经常用到,MySQL的管理维护工具非常多,除了系统自带的命令行管理工具之外,还有许多其他的图形化管理工具,下面介绍几个使用过的MySQL图形化管理工具,供大家参考。1、Navicat目前开发者用的最多的一款MySQL图形化管理工具,界面简洁、功能也非常强大,简单易学,支持中文,提供免费版本,比较推荐。不过Premium版是需要收费的,网上有激活成功教程版,大家自行搜索。NavicatPremium是一套多连接数据库开发工具,让你在单一

    2022年6月20日
    128

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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