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

带通滤波器中心频率怎么求_滤波器的带宽是什么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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Jenkins(7)参数化构建(构建git仓库分支)[通俗易懂]

    Jenkins(7)参数化构建(构建git仓库分支)[通俗易懂]前言当我们的自动化项目越来越多的时候,在代码仓库会提交不同的分支来管理,在用jenkins来构建的时候,我们希望能通过参数化构建git仓库的分支。下载安装GitParameter插件系统管理-

    2022年8月6日
    5
  • madvrhdrmeasure 设置_ime3d安装教程

    madvrhdrmeasure 设置_ime3d安装教程目前网络上广泛传播的127.0.0.1版本madVR,在HDR转SDR这方面差强人意。为了追求更好的显示效果,可以下载madVR针对HDR的更新包,即madVRhdrMeasure。时至2021-10-27,madVRhdrMeasure最新版本为141。官网下载地址:http://madshi.net/madVRhdrMeasure141.ziphttp://madshi.net/madVRhdrMeasure141.zip……

    2025年11月15日
    4
  • [Android] Bitmap的内存计算

    本文聚焦的问题1、Bitmap中像素数据占用多大内存?如何计算?2、不同图片来源对内存大小有什么影响?Bitmap bitmap = Bitmap.createBitmap(100,100,Bitmap.Config.ARGB_8888);依然以如此声明一个bitmap为例,参数就决定了bitmap的大小。(以Android 8.0+平台为例,这行代码执行后占用的总内存大小=bitmap在…

    2022年3月11日
    64
  • Java面试题目,Java中级面试题及答案整理(1)

    Java面试题目,Java中级面试题及答案整理(1)(5)GlobalSession:这个只在portal应用中有用,给每一个globalhttpsession新建一个Bean实例。5、Spring事务传播行为所谓事务的传播行为是指,如果在开始当前事务之前,一个事务上下文已经存在,此时有若干选项可以指定一个事务性方法的执行行为。在TransactionDefinition定义中包括了如下几个表示传播行为的常量:TransactionDefinition.PROPAGATION_REQUIRED:如果当前存在事务,则加入该事务;如果当前没有

    2022年8月31日
    5
  • JAVA位移运算「建议收藏」

    JAVA位移运算「建议收藏」1、java将负整数转成二进制这里以8位为例,只是为了表明过程,实际中java的int类型是4byte,也就是32位。二进制的首位是符号位,0表示正数,1表示负数,在java中,会对负数进行取反加一操作,进而计算出实际的十进制值。如10101010,此8位的二进制数首位是1,表示负数,所以对后面的七位进行取反加一操作,即0101010–>1010110,换成十进制的数就是86,再加上首位的1表示负数,结果就是-86。2、位移运算1)正数的右移:如10>>2,左边自动补0,右边移出

    2025年5月28日
    3
  • 求最大公约数和最小公倍数的算法[通俗易懂]

    求最大公约数和最小公倍数的算法[通俗易懂]在刷题的过程中,经常会遇到很多关于最小公倍数和最大公约数的问题。以下是用C语言写的求最大公约数和最小公倍数的算法。最大公约数。求最大公约数有三种算法。1、辗转相除法。   辗转相除法又称为欧几里德算法。这个方法大家已经都已经在数学上学过了。具体的步骤就是:用较小数除较大数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是…

    2022年5月13日
    54

发表回复

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

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