(1)代码如下:
clc
clear
f = inline('0*(t<0)+t.*(t>=0&t<2)+2*(t>=2&t<3)-1*(t>=3&t<=5)+0*(t>5)', 't')
figure(1)
t1=[0:0.01:5]
x1=f(t1)
plot(t1,x1)
set(gca, 'xtick', [0:1:5])
set(gca, 'ytick', [-1:1:2])
axis([0 5 -1.5 2.5])
xlabel('t')
title('x(t)')
生成x(t)图像如下:
(2)因为档世含x(t)的t取值为0≤t≤5,x(0.5t)时0≤0.5t≤5 ⇒ 0≤t≤10
x(2-0.5t)时0≤2-0.5t≤行笑5⇒-6≤t≤4,综上取-6≤t≤10
代码如下:
figure(2)
t2=[-6:0.01:10]
subplot(3,1,1)
x21=f(t2)
plot(t2,x21)
set(gca, 'xtick', [-6:1:10])
set(gca, 'ytick', [-1:1:2])
axis([-6 10 -1.5 2.5])
xlabel('t')
title('x(t)')
subplot(3,1,2)
x22=f(0.5*t2)
plot(t2,x22)
set(gca, 'xtick', [-6:1:10])
set(gca, 'ytick', [-1:1:2])
axis([-6 10 -1.5 2.5])
xlabel('t')
title('x(0.5t)')
subplot(3,1,3)
x23=f(2-0.5*t2)
plot(t2,x23)
set(gca, 'xtick', [-6:1:10])
set(gca, 'ytick', [-1:1:2])
axis([-6 10 -1.5 2.5])
xlabel('t')
title('x(2-0.5t)')
生返伏成x(t)、x(0.5t)和x(2-0.5t)图像如下:
(3)x(t)的奇分量为1/2[x(t)-x(-t)],偶分量为1/2[x(t)+x(-t)]
同样0≤t≤5,x(-t)时0≤-t≤5 ⇒ -5≤t≤0,综上取-5≤t≤5
代码如下:
figure(3)
t3=[-5:0.01:5]
xo=0.5*(f(t3)-f(-t3))% 奇分量
xe=0.5*(f(t3)+f(-t3))% 偶分量
subplot(2,1,1)
plot(t3,xo)
set(gca, 'xtick', [-5:1:5])
set(gca, 'ytick', [-1:0.5:1])
axis([-5 5 -1.5 1.5])
xlabel('t')
title('x(t)奇分量')
subplot(2,1,2)
plot(t3,xe)
set(gca, 'xtick', [-5:1:5])
set(gca, 'ytick', [-1:0.5:1])
axis([-5 5 -1.5 1.5])
xlabel('t')
title('x(t)偶分量')
生成x(t)的奇偶分量图像如下:
望采纳~
x=[1 3 5 -1]'n=length(x)
for i=1:n
if x(i)>2
y(i)=fun1(x(i))
else
y(i)=fun2(x(i))
end
end
y
这是主皮明程燃升告序笑拿。下面两个分别保存成M文件
function y = fun1(x)
y=x*x+1
end
function y = fun2(x)
y=x-1
end
clearfs=1000%采样频率1000hz
N=500%采样点数
t=(0:1:N-1)/fs
f=10%正弦信号频率10hz
x=sin(2*pi*f*t)+randn(size(t))%被随机信号干扰的正弦信号
b = fir1(31,0.5) %由b = fir1(31,0.5)产生32阶滤波器系数
n = 0.1*randn(1,500)% 通过以上滤波系统所加入的噪声
d = filter(b,1,x)+n % 通过滤波器后的期望信号
delta = 0.005 % 设置自适应滤波器其中一个步长因子为0.005
ha = adaptfilt.lms(32,delta)%求出系统的滤波器系数
[y,e] = filter(ha,x,d)
delta0=0.001 %另一个步长因子为0.001作对比
ha=adaptfilt.lms(32,delta0)
[y0,e0]=filter(ha,x,d)
m=1:500
figure(1)
plot(m,x,'g')
figure(2)
plot(m,e,'r',m,e0)
legend('delta=0.001','delta=0.005')
% subplot(2,1,1)
% plot(m,e0)
%
以上是基本的LMS算法
% 滤波型LMS算法滤波
M = 20 % 运行次数
N = 1000 % 信号的长度祥和
n = 0:N-1
s = sin(2*pi*n/10)% 初始信号
u = s + 0.36*randn(1,N) % 叠加噪声后的信号
% 信号叠加噪声波形图
figure(1)
plot(n,u)
title('信号叠加噪声波形图')
xlabel('n')ylabel('u')
y = zeros(1,N)% 初始化经过自适应滤波器后的信号为零向量
w = zeros(1,N)% 初始化自适应滤波器的权向量为零向量
e = zeros(N) % 初始化误差e(n)的为零向量
a = zeros(1,N)% 初始化前向滤波器的权向量为零向量
vare = zeros(N) % 初始化误差的平方e(n)^2的为零向量
estd = zeros(N) % 初始化均方误差E{e(n)^2}的为零向量
vare1 = ones(1,N) % 初始化误差的平方e(n)^2的为1向量
estd1 = ones(1,N) % 初始化均方误差E{e(n)^2}的为1向量
k = 10% 自适应滤波器的阶数
e1 = zeros(1,N) % 初始化前向预测误差e1为零向量
e2 = zeros(1,N) % 初始化滤波向量e为零向量
y(1:k) = u(1:k)
mu0 = 0.0065 % 初始更新步长因子败宴岁
% 初始化前向滤波器的权向量
a(1:11) = [ 0.1642 , 0.1341 , 0.0529,-0.0624 , -0.1586 ,-0.1932 , -0.1555 , -0.0599 , 0.0584, 0.1229 , 0.1106]
% 滤波型LMS算法滤察睁波
for j = (k + 1):M
u = s + 0.36*randn(1,N) % 叠加噪声后的信号
for n=(k+2):N
mu = mu0/(1 + (n/100)) % 先搜索后收敛步长因子
e(j,n) = s(n) - w((n-1):(n+9)) * u(n:-1:(n-10))' % 误差
e1(n) = u(n) + a((n-10):n)*u((n-1):-1:(n-11))'% 前向预测误差
e2(n) = e(j,n) + a((n-10):n)*e(j,(n:-1:(n-10)))' % 滤波
w(n:(n+10)) = w((n-1):(n+9)) + mu*e1(n:-1:(n-10))*e2(n) % 更新自适应滤波器的权向量
y(n) = w((n):(n+10)) * u((n):-1:(n-10))' % 经过自适应滤波器后的信号
vare(j,n) =e(j,n)^2 % 误差的平方e(n)^2
estd(j,n) = vare(j,(1:n))*vare(j,(1:n))'/n% 均方误差E{e(n)^2}
end
end
vare1 = (vare1*vare)/M% 统计平均意义下e(n)^2
estd1 = (estd1*estd)/M% 统计平均意义下学习曲线
% 滤波型LMS自适应滤波输出
figure(2)
plot(y)
title('mu = 0.0065时滤波型LMS自适应滤波输出')
xlabel('n')ylabel('y')
% 滤波型LMS自适应滤波器的e(n)^2的曲线
figure(3)
plot(vare1)
title('滤波型LMS自适应滤波器的e(n)^2的曲线 ')
xlabel('n')ylabel('e(n)^2')
% 滤波型LMS自适应滤波器的学习曲线图
figure(4)
plot(estd1)
title('滤波型LMS自适应滤波器的学习曲线图 ')
xlabel('n')ylabel('E[e(n)^2]')
希望可以帮到你
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)