记录一下Octave基本使用方法

基本上来源网络大佬们,自己稍微整理下,学习下使用:

clc;
clear all;
% Loader Octave packages
pkg load signal

##
x=linspace(-10,10);
figure(1);
## 正弦波
subplot(2,1,1);
plot(x, sin(x));
hold on;
plot(x, cos(x));
xlabel("x");
ylabel("y");
legend("sin(x)","cos(x)");
title("sin(x) and cos(x)");

##
subplot(2,1,2);
plot(x, sin(x)./x);
xlabel("x");
ylabel("y");
legend("sin(x)/x");
title("sin(x)/x");


##AM调试示例

% 信号抽样时间间隔
ts=0.0025;

# 时间矢量
t=0:ts:10-ts;

# 抽样频率
fs=1/ts;

# fft的频率分辨率
df=fs/length(t);

# 生成随机数种子的消息序列
msg=randi([-3 3],100,1);## 100 x 1的矩阵

# 扩展成取样信号形式
h1=ones(1,fs/10);## 1 x fs/10的1矩阵
msg1=msg*ones(1,fs/10);## 100 x fs/10的矩阵
#矩阵的转置
h2=msg1.';##msg1的转置,即 fs/10 x 100的矩阵
## 重新调整为 1 x length(t)的矩阵
msg2=reshape(msg1.',1,length(t));

#求消息信号的频谱
Pm=fft(msg2)/fs; ##除以fs才是模拟信号的实际频谱
f=-fs/2:df:fs/2-df; ##频率范围
figure(2);
subplot(2,2,1);
plot(t,msg2);##时域域消息信号
title('消息信号时域','fontname','黑体');
subplot(2,2,2);
plot(f,fftshift(abs(Pm)));##频域消息信号频谱
title('消息信号频谱','fontname','黑体');


# 幅度
A=4;
% 载波频率
fc=100;
% 已调信号
Sam=(A+msg2).*cos(2*pi*fc*t);##已调信号
# 已调信号的频谱
Pam=fft(Sam)/fs;
subplot(2,2,3);
plot(t,Sam);##时域已调信号
title("已调AM信号时域","fontname","黑体");
subplot(2,2,4);
plot(f,fftshift(abs(Pam)));##频域已调信号
title("已调AM信号频谱","fontname","黑体");
#axis([-200 200 0 23])

Pc=sum(abs(Sam).^2)/length(Sam);%已调信号功率
Ps=Pc-A^2/2;%消息信号功率
eta=Ps/Pc;%调制效率



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值