首页 > 编程知识 正文

matlab求复数模值,用matlab求复数的模

时间:2023-05-03 13:04:19 阅读:205337 作者:4587

1、有关matlab对复数的显示问题:

复数画图

当plot(z)中的为复数单变量时,即相当于plot(real(z),imag(z))。即z=a+j*b,那么绘出的图x轴为a,y轴为b,y轴即为j虚轴;

For example:

>> t=0:0.1:2;

>> y=2*t.^2+j*3*t;

>> plot(y);

此图横坐标为real(y),竖坐标为imag(z)

>> 2*t.^2

ans =

Columns 1 through 11

0 0.0200 0.0800 0.1800 0.3200 0.5000 0.7200 0.9800 1.2800 1.6200 2.0000

Columns 12 through 21

2.4200 2.8800 3.3800 3.9200 4.5000 5.1200 5.7800 6.4800 7.2200 8.0000

>> y

y =

Columns 1 through 7

0 0.0200 + 0.3000i 0.0800 +

0.6000i 0.1800 +

0.9000i 0.3200 +

1.2000i 0.5000 +

1.5000i 0.7200 + 1.8000i

Columns 8 through 14

0.9800 +

2.1000i 1.2800 +

2.4000i 1.6200 +

2.7000i 2.0000 +

3.0000i 2.4200 +

3.3000i 2.8800 +

3.6000i 3.3800 + 3.9000i

Columns 15 through 21

3.9200 +

4.2000i 4.5000 +

4.5000i 5.1200 +

4.8000i 5.7800 +

5.1000i 6.4800 +

5.4000i 7.2200 +

5.7000i 8.0000 + 6.0000i

如果是双变量如plot(t,z),则z中的虚数部分将被丢弃。

>>plot(t,y);

此图横坐标为t,纵坐标为y,  y=t.^2; 即此图t对应y的实部。

二维绘图

线性直角坐标系中其他形式绘图的命令有stem(绘脉冲图),stairs(绘阶梯图)。scatter(t,y,’.’) (绘离散点图)

时域有关显示:

t=0:0.1:10;

>> y=sin(pi*t);

>> plot(y);

此图横坐标对应t=0:0.1:10的第几个离散数据,1为第一个离散数据即0,2为第二个离散数据即0.1,……………100为第一百个离散数据即9.9。纵坐标为横坐标的具体数值对应的y,即0-à0, 6(第六个离散值)--à1,等等;

plot(t,y);

横坐标就是真实的t值,纵坐标就是所对应的y值。

频域显示坐标

close all; %先关闭所有图片

Adc=2; %直流分量幅度

A1=3; %频率F1信号的幅度

A2=1.5; %频率F2信号的幅度

F1=50; %信号1频率(Hz)

F2=75; %信号2频率(Hz)

Fs=256; %采样频率(Hz)

P1=-30; %信号1相位(度)

P2=90; %信号相位(度)

N=256; %采样点数

t=[0:1/Fs:N/Fs]; %采样时刻

%信号

S=Adc+A1*cos(2*pi*F1*t+pi*P1/180)+A2*cos(2*pi*F2*t+pi*P2/180);

%显示原始信号

plot(S);

title('原始信号');

figure;

Y = fft(S,N); %做FFT变换

Ayy = (abs(Y)); %取模

plot(Ayy(1:N)); %显示原始的FFT模值结果

title('FFT 模值');

figure;

Ayy=Ayy/(N/2); %换算成实际的幅度

Ayy(1)=Ayy(1)/2; %直流量不同与其他

F=([1:N]-1)*Fs/N; %换算成实际的频率值 ,等同于F=(0:N)*Fs/N;

plot(F(1:N/2),Ayy(1:N/2)); %显示换算后的FFT模值结果

title('幅度-频率曲线图');

这个相对清楚些

%采样点数要不小于采样频率,否则会出错(自己写的)

fs=5120;%采样频率为1000Hz;

N=1024;

t=0:1/fs:N/fs;

x=3*cos(2*pi*53*t); %产生正弦波信号;

subplot(2,1,1)

plot(t(1:50),x(1:50)); %画出时域内的信号前50个采样点;

Y=fft(x,N); %对X进行512点的傅立叶变换;

Y1=abs(Y);

Y2=Y1/(N/2); %换算成实际的幅度

f= (0:N)*fs/N; %设置频率轴(横轴)坐标,1000为采样频率;fs/N是每个采%样点对应的频率,*(0:N)为了让频率从0开始表示。

subplot(2,1,2)

plot(f(1:257),Y2(1:257)); %画出频域内的信号

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。