概述
Matlab_DSP基础运算(相关、卷积)
- 前言
- 具体函数代码及注释
- 相关运算 - xcorr()
- 基本运算示例
- 实用示例 - 检测被污染信号中是否含有目标信号
- 卷积运算 - conv()
- 实用示例 - 因式相乘
前言
编写初心,是希望能对相关概念形成一种抽象的理解,并结合一些具体的可能应用场景去思考。
为了避免文章过于冗长,本章只给出相关概念的实验结果,代码部分和尽可能详细的注释。
具体的数学公式在此忽略,但更深入的理解离不开扎实的数学知识。
具体函数代码及注释
相关运算 - xcorr()
基本运算示例
信号x = [2,1,-2,1]与信号h = [-1,2,1,-1],进行相关运算
% 离散信号x与离散信号h进行相关运算
x = [2,1,-2,1]; h = [-1,2,1,-1]
k = [0:3]%索引
[y2,n] = xcorr(x) %自相关运算;
y3 = xcorr(x,h) %相关函数描述了两个信号之在这里插入代码片间的相似性,其相关性大小有相关系数衡量;
y4 = xcorr(h,x) %交换参数,检验其区别
y5 = flip(y3) %序列的翻转-用于验证y3与y4的关系
subplot(2,3,1)
stem(k,x); title('信号x')
subplot(2,3,2)
stem(k,h); title('信号h')
subplot(2,3,3)
stem(n,y2); title('信号x进行自相关运算') % 可见0点的值最大,因为自己与自己最像
subplot(2,3,4)
stem(y3); title('相关运算结果')
subplot(2,3,5)
stem(y4)
subplot(2,3,6)
stem(y5)
实用示例 - 检测被污染信号中是否含有目标信号
已知:有用信号为x,被污染信号为s,污染信号为高斯噪声信号。
推断:由于x和s的自相关结果近似相等,一般有用信号与噪声信号不相关,因此可以推断s中含有x。
fs = 100;t = 0:1/fs:5-1/fs
x = 1.3*sin(2*pi*15*t)+1.7*cos(2*pi*40*(t-2)) %有用信号
r = 0.4*randn(size(t)) % 噪声信号
s = x+r % 接收信号(被污染的信号)
[yx,m]=xcorr(x);[ys,n]=xcorr(s)
subplot(2,2,1);plot(t,x);title('信号x') %绘制x
subplot(2,2,2);plot(t,s);title('信号s') %绘制s
subplot(2,2,3);plot(m,yx);title('x自相关运算结果') %x相关运算结果
subplot(2,2,4);plot(n,ys);title('s自相关运算结果') %y相关运算结果
卷积运算 - conv()
实用示例 - 因式相乘
比如计算以下分式:
y
1
(
x
)
=
1
+
5
x
+
6
x
2
+
x
4
;
y
2
(
x
)
=
1
+
2
x
+
4
x
2
+
4
x
3
.
y_1(x) = 1+5x+6x^2+x^4; y_2(x) = 1+2x+4x^2+4x^3.
y1(x)=1+5x+6x2+x4;y2(x)=1+2x+4x2+4x3.
y
3
(
x
)
=
y
1
(
x
)
∗
y
2
(
x
)
y_3(x) = y_1(x)* y_2(x)
y3(x)=y1(x)∗y2(x)
a = [1 5 6 0 1] % y1的系数,一定要按顺序,且不能漏掉最低项和最高项之间系数为0的项
b = [1 2 4 4] % y2的系数
output = conv(a,b) % y3的系数
结果如下:
所以
y
3
(
x
)
=
1
+
7
x
+
20
x
2
+
36
x
3
+
45
x
4
+
26
x
5
+
4
x
6
+
4
x
7
y_3(x) = 1+7x+20x^2+36x^3+45x^4+26x^5+4x^6+4x^7
y3(x)=1+7x+20x2+36x3+45x4+26x5+4x6+4x7
最后
以上就是谨慎电脑为你收集整理的Matlab_DSP基础运算(相关、卷积)前言具体函数代码及注释的全部内容,希望文章能够帮你解决Matlab_DSP基础运算(相关、卷积)前言具体函数代码及注释所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复