当前位置:首页 > 代码 > 正文

包含matlab实验过程原代码的词条

admin 发布:2022-12-20 00:04 153


今天给各位分享matlab实验过程原代码的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

急求MATLAB编程源代码用四阶龙格库塔法解如下微分方程 y'=y-2x/y(0

% 以下另存为文件 myrk4.m

function [x,y]=myrk4(ufunc,y0,h,a,b)

%参数: 函数名称,初始值向量,步长,时间起点,时间终点

n=floor((b-a)/h);%求步数 

x(1)=a;%时间起点  

y(:,1)=y0;%赋初值

%按龙格库塔方法进行求解 

for ii=1:n   

x(ii+1)=x(ii)+h;   

k1=ufunc(x(ii),y(:,ii));   

k2=ufunc(x(ii)+h/2,y(:,ii)+h*k1/2);   

k3=ufunc(x(ii)+h/2,y(:,ii)+h*k2/2); 

k4=ufunc(x(ii)+h,y(:,ii)+h*k3);

y(:,ii+1)=y(:,ii)+h*(k1+2*k2+2*k3+k4)/6; 

end

以下是主程序

% y'=y-2x/y  (0x1),y(0)=1,步长为h=0.2

fun = inline('y-2*x/y');

[t1,f1]=myrk4(fun,1,0.2,0,1);%测试时改变test_fun的函数维数,别忘记改变初始值的维数 

subplot(211); plot(t1,f1)  %自编函数 

title('自编函数求解结果') 

%用系统自带函数ode45进行比较

[t,f] = ode45(fun,[0 1],1); 

subplot(212); plot(t,f);title('ode45求解结果')

数学实验 matlab的准确编写代码

% 首先可以构造网格数据,然后plot3绘图。

%

% 代码:

clc; clear all; close all;

% 构造x数据

x = linspace(-10, 10);

% 构造y数据

y = linspace(-10, 10);

% 生成网格数据

[x, y] = meshgrid(x, y);

% 计算z

z = x.^3+8*x.^2+5*x-2*x.*y.^2+y+4;

% 绘图

figure;

plot3(x, y, z, 'r-');

box on;

在matlab中IntLp函数的源代码

经查询,matlab不存在intlp这个函数

如果需要matlab中任意函数的源代码,可以在命令窗口中直接输入“type fun”其中fun为你想要查询的函数名

例如,需要查询“mean”函数(求均值函数),直接在命令窗口输入“type mean”,效果如下图所示

(13,9)循环码的MATLAB语言程序,跪求大神,要能运行的

1、循环码编码与解码Matlab源程序(实验以(7,4)循环码进行分析)

m

=

3;

n

=

2^m-1;

%定义码长

k

=

n-m;

%信息位长

msg

=

randint(k*4,1,2);

%随机提取信号,引起一致地分布的任意整数矩阵

subplot(2,2,1)

stem(msg)

title('编码器输入信号')

p=cyclpoly(n,k)

%循环码生成多项式,n=7,k=4

code

=

encode(msg,n,k,'cyclic',p);

%编码函数,对信号进行差错编码

subplot(2,2,2)

stem(code)

title('编码器输出信号')

recode=decode(code,n,k,'cyclic',p)

%对信号进行译码,对接收到的码字进行译码,恢复

出原始的信息,译码参数和方式必须和编码时采用的严格相同

subplot(2,2,3)

stem(recode)

title('译码器输出信号')

t=-1:0.01:1;

x=recode;

%将recode赋值给x,并进行长度与fft设定

N=length(x);

fx=fft(x);

df=100/N;

n=0:N/2;

f=n*df;

subplot(2,2,4);

plot(f,abs(fx(n+1))*2/N);

grid;

title('频谱图')

2、误码率与信噪比之间的关系程序(以(3,2)循环码进行测试)

m

=

2;

n

=

2^m-1;

%定义码长

k

=

n-m;

%信息位长

Fs=40;

%系统采样频率

Fd=1;

%码速率

N=Fs/Fd;

M=2;

%进制数

for

SNRpBit=1:100;%信噪比

SNR=SNRpBit/log2(M);

%制造100个信息组,每组k位

msg

=

randint(100,k,[0,1]);

code

=

encode(msg,n,k,'cyclic/binary');

%加入噪声

%在已调信号中加入高斯白噪声

noisycode=awgn(code,SNR-10*log10(0.5)-10*log10(N),'measured',[],'dB');

%将浮点数转化为二进制,波形整形过程

for

i=1:100

for

a=1:k+1

if

noisycode(i,a)0.5

noisycode(i,a)

=

0;

else

noisycode(i,a)

=

1;

end

end

end

%译码

newmsg

=

decode(noisycode,n,k,'cyclic');

%计算误码率

[number,ratio]=biterr(newmsg,msg);

result(SNRpBit)=ratio;

disp(['The

bit

error

rate

is',num2str(ratio)]);

end

%不同信噪比下循环码经过加性高斯白噪声信道的误码率

figure(1)

stem(result);

title('循环码在不同信噪比下的误码率')

legend('误码率','*')

xlabel('信噪比');

ylabel('在加性高斯白噪声下的误码率');

急求MATLAB实验代码

1,3都有峰值,频率都在2200.

2没有峰值。

采样条件:

采样频率fs:4096Hz

block length:2^13

(如果还要出psd图

还需要,平顶窗

50%overlapping)

matlab code:

clc

clear all

close all

N=2^13;

n=0:N-1;

fs=4096;

% xn=cos(100*pi*22*n/fs);

% xn=exp(-22*n/fs);

xn=exp(-22*n/fs).*cos(100*pi*22*n/fs);

X=fft(xn,N)/N*2;

df=fs/N;

f=0:df:fs-df;

semilogy(f,abs(X))

xlim([0 fs/2.56])

matlab做fft实验代码

% bi2de 操作得到的结果 bianzhi 超出了 x 的索引范围(应该=N)

% 检查 bi2de 的参数

关于matlab实验过程原代码和的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/31522.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载