范文一:matlab 小波 正弦函数
《小波分析》课程结束报告
一.实验目的:运用 MATLAB 软件实现一些小波分析的应用, 并对小波分析有进一步了解。
二.实验步骤:
实验 1. 单尺度一维小波逆变换, 利用 idwt 命令使用指定的小波 (‘ wname ’ )或者小波重构滤波器(Lo_R和 Hi_R)进行单尺度 一维重构。
程序 :
% 当前扩展模式是补零
% 构造原始一维信号 s
randn('seed',531316785)
s=2+kron(ones(1,8),[1,-1])+((1:16).^2)/32+0.2*randn(1,16);
% 使用 db2进行单尺度 dwt
[ca1,cd1]=dwt(s,'db2');
subplot(221);plot(ca1);
title('db2 低频系数 ');
subplot(222);plot(cd1);
title('db2 高频系数 ');
% 进行单尺度离散小波变换
ss=idwt(ca1,cd1,'db2');
err=norm(ss-s); % 检查重构
subplot(212);plot([s;ss]');
title('原始信号和重构信号 ');
xlabel(['误差的 2的范数为 =',num2str(err)])
% 对于给定小波,计算两个相关重构滤波器,并直接利用它们进行逆变换
[Lo_R,Hi_R]=wfilers('db2','r');
ss=idwt(ca1,cd1,Lo_R,Hi_R);
结果如下:
实验 2.与正弦波相关的信号,考虑由 3个正弦波叠加而成的信号, 表达式为:s(t)=sin(3t)+sin(0.3t)+sin(0.03 ) 三种正弦波的周期大约 为 200, 20, 2,且幅值为 1,且采样周期为 1 ,应用 db3小波对其 进行五层分解
程序:
%生成 3个正弦信号
N=1024;
t=1:N;
x1=sin(3*t);
x2=sin(0.3*t);
x3=sin(0.03*t);
%绘制其波形
figure(1);
subplot(3,1,1);plot(t,x1,'LineWidth',2);
xlabel('时间 t/s');ylabel('(sig1)幅值 A');
axis([0 1200 -2 2]);
subplot(3,1,2);plot(t,x2,'LineWidth',2);
%xlabel('时间 t/s');ylabel('(sig2)幅值 A');
axis([0 1200 -2 2]);
subplot(3,1,3);plot(t,x3,'LineWidth',2);
%xlabel('时间 t/s');ylabel('(sig3)幅值 A');
axis([0 1200 -2 2]);
%叠加信号
x=x1+x2+x3;
figure(2)
plot(t,x,'LineWidth',2);xlabel('时间 t/s');ylabel('幅值 A');
%一维小波分解
[c,l]=wavedec(x,5,'db3');
%重构第 1~5层附近信号
a5=wrcoef('a',c,l,'db3',5);
a4=wrcoef('a',c,l,'db3',4);
a3=wrcoef('a',c,l,'db3',3);
a2=wrcoef('a',c,l,'db3',2);
a1=wrcoef('a',c,l,'db3',1);
%显示各层逼近信号
figure(3)
subplot(5,1,1);plot(a5,'LineWidth',2);ylabel('a5'); subplot(5,1,2);plot(a4,'LineWidth',2);ylabel('a4'); subplot(5,1,3);plot(a3,'LineWidth',2);ylabel('a3'); subplot(5,1,4);plot(a2,'LineWidth',2);ylabel('a2'); subplot(5,1,5);plot(a1,'LineWidth',2);ylabel('a1');
xlabel('时间 t/s');
%重构第 1~层细节信号
d5=wrcoef('d',c,l,'db3',5);
d4=wrcoef('d',c,l,'db3',4);
d3=wrcoef('d',c,l,'db3',3);
d2=wrcoef('d',c,l,'db3',2);
d1=wrcoef('d',c,l,'db3',1);
%显示各层细节信号
figure(4)
subplot(5,1,1);plot(d5,'LineWidth',2);ylabel('d5'); subplot(5,1,2);plot(d4,'LineWidth',2);ylabel('d4'); subplot(5,1,3);plot(d3,'LineWidth',2);ylabel('d3'); subplot(5,1,4);plot(d2,'LineWidth',2);ylabel('d2'); subplot(5,1,5);plot(d1,'LineWidth',2);ylabel('d1');
xlabel('时间 t/s');
结 果 如 下 :
实验 3. 小波分解的最大尺度,计算一维信号和二维信号分解的最大 尺度
程序:
% 对于一维信号
s=2^10;
w='db1';
% 计算小波分解的最大尺度,规则时最大尺度至少一个系数正确
l1=wmaxlev(s,w)
% 改变小波
w='db7';
% 计算最大分解尺度
l2=wmaxlev(s,w)
% 对于二维信号
s=[2^9 2^7];
w='db1';
% 计算最大分解尺度
l3=wmaxlev(s,w)
% 它和下面这个函数一样
l4=wmaxlev(min(s),w)
% 改变小波
w='db7';
% 计算最大分解尺度
l5=wmaxlev(s,w)
结果如下:l1 =
10
l2 =
6
l3 =
7
l4 =
7
l5 =
3
实验 4.多尺度一维小波重构, waverec 使用指定小波(’ wname ’ )或 者重构滤波器(Lo_R and Hi_R)进行一维尺度小波重构。
程序:
% 采用补零的扩展模式
% 装载一维信号
load sumsin;s=sumsin;
subplot(2,1,1);plot(s);title('原始信号 ');
%使用 sym4进行尺度为 5的分解;
[c,l]=wavedec(s,5,'sym4');
% 从小波分解结构 [c,1].重构尺度为 5的低频部分
a5=wrcoef('a',c,l,'sym4',5);
subplot(2,1,2);plot(a5);title('重构低频信号 ') ;
结 果 如 下
:
三.实验结果
实验基本成功,对小波分析理论及应用有进一步的认知
范文二:matlab画基本函数图像
第一题
n=-6:6 ;
Un=[zeros(1,6),ones(1,7)] ; stem(n,Un,'fill','r*') ;
xlabel('n') ;
ylabel('Un') ;
title('单位阶跃序列 ') ;
figure ;
n=-6:6 ;
Un=[zeros(1,6),ones(1,1),zeros(1,6)] ; stem(n,Un,'fill') ;
xlabel('n') ;
ylabel('Un') ;
title('单位采样序列 ') ;
figure ;
n=-6:8;
X=(n>=0)&((n-5)<=0); stem(n,x,'fill','r')="" ,="" title('矩形序列="" ')="" ;="" xlabel('n')="">=0);>
ylabel('X') ;
figure ;
n=-2:0.01:0.2;
Xn=sin(5*n*pi+pi/4); stem(n,Xn,'fill','b.');
title('正弦序列 ') ; xlabel('n'),ylabel('Xn');
figure;
n=-5:0.1:5;
S=1.5.^n;
X=ones(1:n);
X=(n>=0);
Y=S.*X;
stem(n,Y,'fill','k.');
title('实指数序列 ') ;
xlabel('n') ;
ylabel('Y') ;
figure ;
n=-5:0.1:5;
S=exp((1/12+1i*2*pi)*n); stem(n,S,'fill','b.'); title('复指数序列 ') ; xlabel('n') ;
ylabel('S') ;
第二题
n=-10:12 ;
X=[ zeros(1,4), ones(1,4) ,zeros(1,4)]; H=[ zeros(1,3), ones(1,5) ,zeros(1,4)]; y=conv(X,H) ;
stem(n,y,'fill','b.') ;
xlabel('n');
ylabel('y');
title('卷积
');
第三题
a=[1,0.7,-0.45,-0.6]; b=[0.8,-0.44,0.36,0.02]; n=0:50;
x=[1,zeros(1,50)]; h=filter(b,a,x); stem(n,h,'fill','r*'); title('差分 '); xlabel('n');
ylabel('h');
范文三:用matlab画分段函数
用 Matlab 画分段函数
例 1 用 matlab 画分段函数 y=sin(x), 当 y<0时 y="0" ;="" 当="" y="">0.8时 y=0.8 x=-2:0.1:2; y=0.*(x<><=0.8&x>=0)+0.8*(x>0.8);
plot(x,y,'r')
例 2 高数中的的取整函数 y=[x]
Ex-1: >> x=0:0.001:4;
>> y=0*(x<1&x>=0)+(x<2&x>=1)+2*(x<3&x>=2)+3*(x<4&x>=3);
>> plot(x,y,'-r')
Ex-2: x=0:0.001:4;
y=0*(x<1&x>=0)+(x<2&x>=1)+2*(x<3&x>=2)+3*(x<4&x>=3);
k1= find(x==1); k2= find(x==2); k3= find(x==3); k4= find(x==4); plot(x(1:k1-1),y(1:k1-1),'b', x(k1+1:k2-1),y(k1+1:k2-1),'r')
hold on
plot(x(k2+1:k3-1),y(k2+1:k3-1),'c',x(k3+1:k4-1),y(k3+1:k4-1),'m')
hold off
例 3 matlab 绘制分段函数 x>=1,y=exp(-(x-1)^2); x<1,y=x^2.其中曲线为绿虚线,并>1,y=x^2.其中曲线为绿虚线,并>
x=-4:0.01:4;
y=(x<1).*(x.^2)+(x>=1).*(exp(-(x-1).^2));
plot(x,y,'b')
text(-2,5,'\leftarrow y=x^2','FontSize',9)
text(2,0.7,'\leftarrow y=exp(-(x-1)^2)','FontSize',9)
范文四:matlab复变函数画图形
第四篇 计算机仿真
第二十一章 计算机仿真在复变函数中的应用
基于 MA TLAB 语 言的广泛 应 用, 我 们 介 绍 的 计 算机仿 真 方法主要立足于 对 MA TLAB 语 言的仿 真 介 绍 , 而其 它 的 数学 工具 软 件(MA THEMA TIC,MA THCAD,MAPLE )的仿 真 方法是 类 似的.
本章 将 重点介 绍 使用 MA TLAB 进 行 复数 、 复变 函 数 的各 类 基本 运 算以及定理的 验证 ; 并 介 绍 仿 真计 算留 数 、 积 分的方法 ;以及 复变 函 数 中 Taylor 级数 展 开 , Laplace 变换 和 Fourier 变换 .
21.1 复数运算和复变函数的图形
21.1.1 复数的基本运算
1复数的生成
复数可由语句 z=a+b*i 生成,也可简写成 z=a+bi;另一种生成复数的语句是 z=r*exp(i*theta),其中 theta 是复数 辐角的弧度值, r 是复数的模.
2复矩阵的生成
创建复矩阵有两种方法.
(1)一般方法
例 21.1.1创建复矩阵的一般方法.
【解】仿真程序为
A=[3+5*I -2+3i i 5-i 9*exp(i*6) 23*exp(33i)]
%运行后答案为 A =3.0000+5.0000i -2.0000+3.0000i 0+1.0000i
5.0000-1.0000i 8.6415-2.5147i -0.3054+22.9980i
(说明 : %后 为 注 释语 句,不需 输 入 )
(2)可将实、虚矩阵分开创建,再写成和的形式
例 21.1.2将实、虚部合并构成复矩阵
【解】仿真程序为
re=rand(3,2);
im=rand(3,2);
com=re+i*im
%运行后答案为 com = 0.9501+0.4565i 0.4860+0.4447i
0.2311+0.0185i 0.8913+0.6154i
0.6068+0.8214i 0.7621+0.7919i
21.1.2 复数的运算
1 复数的实部和虚部
复数的实部和虚部的提取可由函数 real 和 imag 实现.调用形式如下:
real(z)返回复数 z 的实部;
imag(z) 返回复数 z 的虚部 .
2 共轭复数
复数的共轭可由函数 conj 实现.调用形式为:conj(z)返回复数 z 的共轭复数 .
3 复数的模与辐角
复数的模与辐角的求取由函数 abs 和 angle 实现.调用形式为:
abs(z)返回复数 z 的模;
angle(z)返回复数 z 的辐角 .
例 21.1.1求下列复数的实部与虚部、共轭复数、模与辐角.
(1)
1
32i
+; (2)
13i
i 1i
-
-; (3)
(34i)(25i)
2i
+-
; (4) 821 i 4i i -+.
【 解 】 a=[1/(3+2i) 1/i-3i/(1-i) (3+4i)*(2-5i)/2i i^8-4*i^21+i]
%a =0.2308 - 0.1538i 1.5000 - 2.5000i -3.5000 -13.0000i 1.0000 - 3.0000i
real(a)
%ans = 0.2308 1.5000 -3.5000 1.0000
(注明 :凡 ans 及其后面的 内 容均不需 输 入, 它 是前面 语 句的答案.本句 ans 是 real(a)的答案 ) imag(a)
%ans = -0.1538 -2.5000 -13.0000 -3.0000
conj(a)
%ans =0.2308 + 0.1538i 1.5000 + 2.5000i -3.5000 +13.0000i 1.0000 + 3.0000i
abs(a)
%ans = 0.2774 2.9155 13.4629 3.1623
angle(a)
%ans =-0.5880 -1.0304 -1.8338 -1.2490
4 复数的乘除法
复数的乘除法运算由“ *”和“ /”实现.
5 复数的平方根
复数的平方根运算由函数 sqrt 实现.调用形式如下:
sqrt(z)返回复数 z 的平方根值
6 复数的幂运算
复数的幂运算的形式是 z^n,结果返回复数 z 的 n 次幂.
7 复数的指数和对数运算
复数的指数和对数运算分别由函数 exp 和 log 实现.调用形式如下:
exp (z ) 返回复数 z 的以 e 为底的指数值 ;
log (z ) 返回复数 z 的以 e 为底的对数值 .
例 21.1.2 求下列式的值.
(1) ) 10ln(-; (2) πi
2e .
【 解 】 log(-10)
%ans= 2.3026 + 3.1416i
exp(pi/2* i)
%ans =0.0000+ 1.0000i 21.1.3 复变函数的图形
1.整幂函数的图形
例 21.1.6 绘出幂函数 2z 的图形 .
【解】 z=cplxgrid(30);
cplxmap(z,z.^2);
colorbar('vert' );
title('z^2')
%(如图 21.1所示 )
2. 根式函数的图形
例 21.1.7 绘出幂函数 12z 的图形
【解】 z=cplxgrid(30);
cplxroot(2);
colorbar('vert' );
title('z^{1/2}' ) %(如图 21.2).
3. 复变函数中对数函数的图形
例 21.1.3 绘出对数函数 Ln z 的图形 .
【解】
z=cplxgrid(20);
w=log(z);
for k=0:3
w=w+i*2*pi;
surf(real(z),imag(z),imag(w),real(w));
hold on
title('Lnz')
end
view(-75,30) %(如图 21.3) 例 21.1.4 计算机仿真编程实践: 若 (1, 2, , ) k z k n =???对应为 10n z -=的根,其中 2n ≥且取整数 . 试用计算机仿真编程验证下列数学恒等式
11
() 10, () n
n k k m m m k z z ==≠=-∑
∏
成立 .
【解】 仿真程序
n=round(1000*random('beta',1,1))+1
% n=input('please enter n=')
su=1;
sum=0;
for s=1:n
N(s)=exp(i*2*s*pi/n);
end
图 21.3 对数函数 Ln z
图 21.2 复变函数 12
z 的图形 图 21.1 复变函数 2z 的图形
for k=1:n
for s=1:n
if s~=k
su=1/(N(k)-N(s))*su;
end
end
sum=sum+su;
su=1;
end
sum
%仿真验证结果为:n =735 sum =2.2335e-016 -5.1707e-016i
其中 n 的值为随机产生的整数,可见其和的实部和虚部均接近于零。
另一篇:
matlab 表现复变函数(四维)的方法是用三维空间坐标再加上颜色,类似于地球仪用颜色表示海洋与 高山。
单值函数:单叶
多值函数:多叶
matlab 使用下列函数进行复变函数的做图:
cplxgrid :构建一个极坐标的复数数据网格
z=cplxgrid(m); %产生(m+1) *(2*m+1)的极坐标下的复数数据网格。最大半径为 1的圆面 cplxmap :对复变函数做图
cplxmap(z,f(z),[optional bound]) %画复变函数的图形,可选项用以选择函数的做图范围
cplxmap 做图时,以 xy 平面表示自变量所在的复平面,以 z 轴表示复变函数的实部,颜色表示复变函 数的虚部
cplxroot :画复数的 n 次函数曲面
cplxroot(n) %画复数 n 次根的函数曲面 , 复数为最大半径为 1的圆面
cplxroot(n,m) %画复数 n 次根的函数曲面 , 复数为最大半径为 1的圆面 , 为 (m+1) *(2m+1) 的方阵
例 1:画复数 z^3的图形
z=3*cplxgrid(30);
cplxmap(z,z.^3);
colorbar
其结果如图
可见,自变量 z 的取值在水平面的半径小于 3的园内。
cplxmap 做图时,以 xy 平面表示自变量所在的复平面,以 z 轴表示复变函数的实部,颜色表示复变函 数的虚部
由于函数为单页的,所以函数是单值的
例 2:画复数(z-0.5) ^0.5的图形
仿照 cplxroot 函数的程序,编程如下
m=20;
n=2;
r=(0:m)'/m;
theta=pi*(-m:m)/m;
z=r*exp(i*theta)-0.5;
w1=z.^(1/n);
subplot(2,2,1),surf(real(z),imag(z),real(w1),imag(w1));
colorbar
w2=w1.*exp(i*2*pi/n);
subplot(2,2,2),surf(real(z),imag(z),real(w2),imag(w2));
colorbar
subplot(2,1,2)
surf(real(z),imag(z),real(w1),imag(w1));
hold on
surf(real(z),imag(z),real(w2),imag(w2));
colorbar
如果仅使用 w1=z.^(1/n);,则所得结果为图(2, 2, 1)
可见,对于多值函数, MATLAB 仅仅是对其主值进行计算。
例 3:复变函数 1/(1-z )的级数展开
复变函数 1/(1-z )是级数展开中常用的一个函数。
当 abs (z ) <1时,它的 泰勒展开="">1时,它的>
1/(1-z)=求和(k=0,+无穷) z^k
当 abs (z ) >1时,它的 罗朗展开 式为
1/(1-z)=求和(k=-无穷 ,-1) z^k
泰勒展开与罗朗展开的区别
在复变函数里面,一些函数无法被展开为泰勒级数,因为那里存在一些奇点。 但是如果变量 x 是负指 数幂的话,我们仍然可以将其展开为一个级数 , 这就是洛朗级数 .
从形式上看 , 泰勒级数是只含正幂项和常数项 . 洛朗级数不仅包含了正数次数的项, 也包含了负数次数的 项。有时无法把函数表示为泰勒级数,但可以表示为洛朗级数。
可以认为泰勒级数是洛朗级数的一种特殊形式
m=30;
r=2*(0:m)'/m;
theta=pi*(-m:m)/m;
z=r*exp(i*theta)-0.5;
z(find(z==1))=nan;
z1=z;
z1(abs(z1)>=1)=nan;
w1=1;u1=1;
for k=1:100
u1=u1.*z1;
w1=u1+w1;
end
subplot(2,2,1)
cplxmap(z1,w1)
colorbar
z2=z;
z2(abs(z2)<>
w2=1./z2;u2=1./z2;
for k=1:100
u2=u2./z2;
w2=u2+w2;
end
subplot(2,2,2)
cplxmap(z2,-w2)
colorbar
subplot(2,2,3)
cplxmap(z,1./(1-z))
colorbar
temp1=caxis;
subplot(2,2,4)
cplxmap(z1,w1)
hold on
cplxmap(z2,-w2)
caxis(temp1)
axis([min(min(real(z))),max(max(real(z))),min(min(imag(z))),max(max(imag(z))),min(min(real(1./(1-z)))),max(max(real(1./(1-z))))])
colorbar
图(2, 2, 1)为泰勒展开,图(2, 2, 2)为罗朗展开
图(2, 2, 3)为 matlab 计算结果,图(2, 2, 4)为泰勒展开和罗朗展开的综合结果
范文五:用matlab画分段函数y
例1. 用matlab画分段函数y=sin(x), 当y<0时 y="0" ;="" 当y="">0.8时 y=0.8
x=-2:0.1:2; y=0.*(x<><=0.8&x>=0)+0.8*(x>0.8); plot(x,y,'r')
例2 高数中的的取整函数y=[x]
Ex-1: >> x=0:0.001:4;
>> y=0*(x<1&x>=0)+(x<2&x>=1)+2*(x<3&x>=2)+3*(x<4&x>=3); >> plot(x,y,'-r')
Ex-2: x=0:0.001:4;
y=0*(x<1&x>=0)+(x<2&x>=1)+2*(x<3&x>=2)+3*(x<4&x>=3); k1= find(x==1); k2= find(x==2); k3= find(x==3); k4= find(x==4); plot(x(1:k1-1),y(1:k1-1),'b', x(k1+1:k2-1),y(k1+1:k2-1),'r') hold on
plot(x(k2+1:k3-1),y(k2+1:k3-1),'c',x(k3+1:k4-1),y(k3+1:k4-1),'m') hold off
例3 matlab 绘制分段函数 x>=1,y=exp(-(x-1)^2); x<>
进行标注
x=-4:0.01:4;
y=(x<1).*(x.^2)+(x>=1).*(exp(-(x-1).^2)); plot(x,y,'b')
text(-2,5,'\leftarrow y=x^2','FontSize',9) text(2,0.7,'\leftarrow y=exp(-(x-1)^2)','FontSize',9)
转载请注明出处范文大全网 » matlab小波正弦函数
1).*(x.^2)+(x>4&x>3&x>2&x>1&x>4&x>3&x>2&x>1&x>=0.8&x>0时>1).*(x.^2)+(x>4&x>3&x>2&x>1&x>4&x>3&x>2&x>1&x>=0.8&x>0时>