dsp循环卷积与线性卷积

1 循环卷积

function[yn]=circularconvolution(xn,hn,N);

N=input('N=');

xn=[2 2 1 1 zeros(1,N-4)];

hn=[1 2 0 1 zeros(1,N-4)];

k=[0:1:N-1];

n=[0:1:N-1];

Wn=exp(-j*2*pi/N);

kn=k'*n;

Wn_kn=Wn.^kn;

Xk=xn*Wn_kn;

k=[0:1:N-1];

n=[0:1:N-1];

Wn=exp(-j*2*pi/N);

kn=k'*n;

Wn_kn=Wn.^kn;

Hk=hn*Wn_kn;

Yk=Xk.*Hk;

k=[0:1:N-1];

n=[0:1:N-1];

Wn=exp(-j*2*pi/N);

kn=k'*n;

Wn_kn=Wn.^(-kn);

yn1=(Yk*Wn_kn)/N;

yn=real(yn1);

输入N=4 ,6 ,8 ,10

结果[6 7 6 5][3 6 5 5 4 1][2 6 5 5 4 1 1 0][2 6 5 5 4 1 1 0 0 0]

当N 大于6时,循环卷积与线性卷积结果一致。

2

n=0:47;

xn1 = cos(n*pi/6);

xn2 = cos(n*pi/3);

hn=[-0.0322,-0.0531,-0.0450,0.0000,0.0750,0.1592,0.2251,

0.2500,0.2251,0.1592,0.0750,0.0000,-0.0450,-0.0531,-0.0322]

N=length(hn)+47;

xn=xn1+xn2;

h1n = [hn,zeros(1,47)];

x1n = [xn,zeros(1,14)];

k=[0:1:N-1];

n=[0:1:N-1];

Wn=exp(-j*2*pi/N);

kn=k'*n;

Wn_kn=Wn.^kn;

Xk = x1n*Wn_kn;

k=[0:1:N-1];

n=[0:1:N-1];

Wn=exp(-j*2*pi/N);

kn = k'*n;

Wn_kn = Wn.^kn;

Hk = h1n*Wn_kn;

Yk=Xk.*Hk;

k=[0:1:N-1];

n=[0:1:N-1];

Wn=exp(-j*2*pi/N);

kn=k'*n;

Wn_kn=Wn.^(-kn);

yn1 = (Yk*Wn_kn)/N;

yn = real(yn1);

stem(0:61,yn);

3

n=0:39; k=10;

xn=cos(pi*n/10)+cos(2*n*pi/5); hn=[1,1,1,1,1];

m=length(hn);

subplot(221)

stem(n,xn,'.')

xlabel('n'); ylabel('Amplitude'); title('x(n)');

subplot(223)

stem(n,[hn,zeros(1,35)],'.')

axis([0,40,0,1.2]);

xlabel('n'); ylabel('Amplitude'); title('h(n)');

xk_n1=xn(1:k); yk_n1=conv(hn,xk_n1);

add_zeros1=zeros(1,length(n)-length(yk_n1)+m-1);

yk_n1=[yk_n1,add_zeros1];

subplot(522)

stem(0:length(yk_n1)-1,yk_n1,'.')

xlabel('n'); ylabel('Amplitude'); legend('y0')

xk_n2=xn(1+k:2*k); yk_n2=conv(hn,xk_n2);

add_zeros21=zeros(1,k);

add_zeros22=zeros(1,length(n)-length(yk_n2)-k+m-1);

yk_n2=[add_zeros21,yk_n2,add_zeros22];

subplot(524)

stem(0:length(yk_n2)-1,yk_n2,'.')

xlabel('n'); ylabel('Amplitude');legend('y1')

xk_n3=xn(1+2*k:3*k); yk_n3=conv(hn,xk_n3);

add_zeros31=zeros(1,2*k);

add_zeros32=zeros(1,length(n)-length(yk_n3)-2*k+m-1);

yk_n3=[add_zeros31,yk_n3,add_zeros32];

subplot(526)

stem(0:length(yk_n3)-1,yk_n3,'.')

xlabel('n'); ylabel('Amplitude'); legend('y2',2)

xk_n4=xn(1+3*k:4*k); yk_n4=conv(hn,xk_n4);

add_zeros4=zeros(1,k*3);

yk_n4=[add_zeros4,yk_n4];

subplot(528)

stem(0:length(yk_n4)-1,yk_n4,'.')

xlabel('n'); ylabel('Amplitude'); legend('y3',2)

y1=yk_n1(k+1:k+m-1)+yk_n2(k+1:k+m-1);

y2=yk_n2(2*k+1:2*k+m-1)+yk_n3(2*k+1:2*k+m-1);

y3=yk_n3(3*k+1:3*k+m-1)+yk_n4(3*k+1:3*k+m-1);

yk=[yk_n1(1:k),y1,yk_n2(k+m:k*2),y2,yk_n3(2*k+m:3*k),y3,yk_n4(3*k+m:4*k)]; subplot(5,2,10)

stem(0:length(yk)-1,yk,'.')

xlabel('n'); ylabel('Amplitude'); legend('y(n)',3) ;

1 循环卷积

function[yn]=circularconvolution(xn,hn,N);

N=input('N=');

xn=[2 2 1 1 zeros(1,N-4)];

hn=[1 2 0 1 zeros(1,N-4)];

k=[0:1:N-1];

n=[0:1:N-1];

Wn=exp(-j*2*pi/N);

kn=k'*n;

Wn_kn=Wn.^kn;

Xk=xn*Wn_kn;

k=[0:1:N-1];

n=[0:1:N-1];

Wn=exp(-j*2*pi/N);

kn=k'*n;

Wn_kn=Wn.^kn;

Hk=hn*Wn_kn;

Yk=Xk.*Hk;

k=[0:1:N-1];

n=[0:1:N-1];

Wn=exp(-j*2*pi/N);

kn=k'*n;

Wn_kn=Wn.^(-kn);

yn1=(Yk*Wn_kn)/N;

yn=real(yn1);

输入N=4 ,6 ,8 ,10

结果[6 7 6 5][3 6 5 5 4 1][2 6 5 5 4 1 1 0][2 6 5 5 4 1 1 0 0 0]

当N 大于6时,循环卷积与线性卷积结果一致。

2

n=0:47;

xn1 = cos(n*pi/6);

xn2 = cos(n*pi/3);

hn=[-0.0322,-0.0531,-0.0450,0.0000,0.0750,0.1592,0.2251,

0.2500,0.2251,0.1592,0.0750,0.0000,-0.0450,-0.0531,-0.0322]

N=length(hn)+47;

xn=xn1+xn2;

h1n = [hn,zeros(1,47)];

x1n = [xn,zeros(1,14)];

k=[0:1:N-1];

n=[0:1:N-1];

Wn=exp(-j*2*pi/N);

kn=k'*n;

Wn_kn=Wn.^kn;

Xk = x1n*Wn_kn;

k=[0:1:N-1];

n=[0:1:N-1];

Wn=exp(-j*2*pi/N);

kn = k'*n;

Wn_kn = Wn.^kn;

Hk = h1n*Wn_kn;

Yk=Xk.*Hk;

k=[0:1:N-1];

n=[0:1:N-1];

Wn=exp(-j*2*pi/N);

kn=k'*n;

Wn_kn=Wn.^(-kn);

yn1 = (Yk*Wn_kn)/N;

yn = real(yn1);

stem(0:61,yn);

3

n=0:39; k=10;

xn=cos(pi*n/10)+cos(2*n*pi/5); hn=[1,1,1,1,1];

m=length(hn);

subplot(221)

stem(n,xn,'.')

xlabel('n'); ylabel('Amplitude'); title('x(n)');

subplot(223)

stem(n,[hn,zeros(1,35)],'.')

axis([0,40,0,1.2]);

xlabel('n'); ylabel('Amplitude'); title('h(n)');

xk_n1=xn(1:k); yk_n1=conv(hn,xk_n1);

add_zeros1=zeros(1,length(n)-length(yk_n1)+m-1);

yk_n1=[yk_n1,add_zeros1];

subplot(522)

stem(0:length(yk_n1)-1,yk_n1,'.')

xlabel('n'); ylabel('Amplitude'); legend('y0')

xk_n2=xn(1+k:2*k); yk_n2=conv(hn,xk_n2);

add_zeros21=zeros(1,k);

add_zeros22=zeros(1,length(n)-length(yk_n2)-k+m-1);

yk_n2=[add_zeros21,yk_n2,add_zeros22];

subplot(524)

stem(0:length(yk_n2)-1,yk_n2,'.')

xlabel('n'); ylabel('Amplitude');legend('y1')

xk_n3=xn(1+2*k:3*k); yk_n3=conv(hn,xk_n3);

add_zeros31=zeros(1,2*k);

add_zeros32=zeros(1,length(n)-length(yk_n3)-2*k+m-1);

yk_n3=[add_zeros31,yk_n3,add_zeros32];

subplot(526)

stem(0:length(yk_n3)-1,yk_n3,'.')

xlabel('n'); ylabel('Amplitude'); legend('y2',2)

xk_n4=xn(1+3*k:4*k); yk_n4=conv(hn,xk_n4);

add_zeros4=zeros(1,k*3);

yk_n4=[add_zeros4,yk_n4];

subplot(528)

stem(0:length(yk_n4)-1,yk_n4,'.')

xlabel('n'); ylabel('Amplitude'); legend('y3',2)

y1=yk_n1(k+1:k+m-1)+yk_n2(k+1:k+m-1);

y2=yk_n2(2*k+1:2*k+m-1)+yk_n3(2*k+1:2*k+m-1);

y3=yk_n3(3*k+1:3*k+m-1)+yk_n4(3*k+1:3*k+m-1);

yk=[yk_n1(1:k),y1,yk_n2(k+m:k*2),y2,yk_n3(2*k+m:3*k),y3,yk_n4(3*k+m:4*k)]; subplot(5,2,10)

stem(0:length(yk)-1,yk,'.')

xlabel('n'); ylabel('Amplitude'); legend('y(n)',3) ;


相关内容

  • 数字信号处理大纲
  • 北京邮电大学世纪学院<数字信号处理>课程教学大纲 课程编号: 课程名称: 数字信号处理 Digital Signal Processing 课程类别: 专业基础课 总学时: 48学时 总学分: 3 适用对象:信息工程.通信工程.电子信息工程专业学生 课程性质:本课程是电子信息类专业继&q ...

  • 循环卷积与线性卷积的实现
  • 循环卷积与线性卷积的实现 一.实验目的 (1)进一步理解并掌握循环卷积与线性卷积的概念. (2)理解掌握二者的关系. 二.实验原理 两个序列的N 点循环卷积定义为 [h( *x(n)]N =○∑h(m)x((n-m))N (0≤n k =0N -1 从定义中可以看到,循环卷积和线性卷积的不同之处在于 ...

  • 循环卷积与线性卷积的matlab实现
  • 循环卷积与线性卷积的实现 一. 实验目的:(1)进一步理解并掌握循环卷积与线性卷积的概念. (2)理解掌握二者的关系. 三.实验原理 两个序列的N 点循环卷积定义为 [h (n )⊗x (n )]N = ∑h (m )x ((n -m ))(0≤n N k =0 N -1 从定义中可以看到,循环卷积 ...

  • 数字滤波器设计及实现
  • 第5卷第4期江西蓝天学院学报Vo5. 1No . 4 2010年12月J OURNAL OF JI A NGXI BLUE SKY UN I V ERSI T Y Dece m beb . 2010 基于DSP 的FIR 数字滤波器设计及实现 孟莎莎 (江西蓝天学院机电研究所 江西 南昌 33009 ...

  • 通过重叠相加法实现卷积的报告
  • 数字信号处理 课程设计 题目:通过重叠相加法实现卷积 院系:自动化与信息工程学院 专业:通信工程 班级: 通信091 学号: 3090432028 姓名: 雷帛川 指导教师: 李建勋 职称: 副教授 2012年7月10日-2012年7月14日 设计任务 对随机信号进行滑动均值滤波,分析统计特征. 功 ...

  • 离散傅里叶变换性质
  • 数 字 信 号 处 理 实验名称:实验日期:姓 名:学 号:实验报告 离散傅里叶变换的性质 2011年11月16日 许鹏 090240229 哈尔滨工业大学(威海) 一.实验目的 验证离散傅里叶变换的性质,包括线性特性.时移特性.频移特性.对称性和循环卷积等性质 二.实验原理 1. 线性特性 DFT ...

  • 第三章 傅里叶分析
  • 第3章 傅里叶分析 3.1 傅里叶变换概述 一. 时间连续.频率连续的傅里叶变换(FT) 其傅里叶变换公式为: 正变换 X(jΩ)= ⎰ ∞ -∞∞ x(t)e-jΩtdt X(jΩ)ejΩtdΩ 1 反变换 x(t)= 2π ⎰ -∞ 时域函数的连续性造成频域函数的非周期性,而时域的非周期性造成频 ...

  • 有限长序列线性卷积快速计算方法
  • 1. 概述............................................................................................................................................. 2 2 ...

  • 第3章+差错控制
  • 3.1 第3章 差错控制 差错控制的基本概念及原理 3.1.1差错控制的基本概念 1.差错分类 z z 例:数据序列1 0 1 1 0 0 0 1 1 1 0 1 ××× ×× ××× 这一串为突发差错(中间可能有不错的码) 2.差错控制的基本思路 P95 信息码+监督码=(加的监督码越多,差错控制 ...