如何用matlab实现频域块LMS算法

如何用matlab实现频域块LMS算法,第1张

先对t离散化,然后FFT,再画个幅频和相频就可以了。

不过貌似你这个式子有点问题,randn产生11024的高斯噪声已经指定了s的维数了,所以t必须去1024个离散值,限定了t的取值了。

你可以参考下面的程序,建议你看懂之后自己编一下。

这是对sin(x)求幅频相频

%用fft求幅频相频

clc;%清空

clearall;%清除所有变量

closeall;%关闭所有窗口

A=10;%振幅

fw=50;%固有频率

phi=pi/3;%相位

step=1000;

t=0:1/step:10pi;%时间t

y=Asin(2pifwt+phi);%正弦函数y

f=step(0:256)/512;%频率

subplot(3,1,1);%三行一列第一幅图

plot(t,y);%绘制图形

xlabel('t/s','fontsize',13);%横坐标显示t/s,字号13

ylabel('y','fontsize',13);%纵坐标显示y,字号13

title('正弦函数曲线','fontsize',13);%显示标题

Y=fft(y,512);%对y进行傅里叶变换

subplot(3,1,2);%三行一列第二幅图

plot(f,abs(Y(1:257)));%绘制图形

xlabel('f/Hz','fontsize',13);%横坐标显示f/Hz,字号13

ylabel('幅值','fontsize',13);%纵坐标显示幅值,字号13

title('幅频特性曲线','fontsize',13);%显示标题

[value,index]=max(abs(Y));%将abs(Y)最大值点的横坐标、纵坐标分别赋给

value和index

text(f(index),value,sprintf('maxpiont=(%f,%f)',f(index),value),'fonts

ize',13);%显示最大值点坐标

subplot(3,1,3);%三行一列第三幅图

plot(f,angle(Y(1:257))180/pi);%绘制图形

xlabel('f/Hz','fontsize',13);%横坐标显示f/Hz,字号13

ylabel('相位/°','fontsize',13);%纵坐标显示相位/°,字号13

title('相位特性曲线','fontsize',13);%显示标题

城市数据库预测方法如下。

1、综合增长率法,预测基准年上溯多年的历史平均增长率为基础,预测规划目标年城市人口的方法。

2、时间序列法,对一个城市的历史城市人口数据的发展变化进行趋势分析,直接预测规划期城市人口规模的方法。采用线性相关模型。适用于发展趋势变化不大的城市。

3、增长曲线法,增长曲线模型用来描述变量随时间变化的规律性,模型需要以往数据并找出规律性。常见的有多项式增长曲线,指数型增长曲线,逻辑增长曲线和龚珀兹增长曲线。

4、劳动平衡法,主要建立在按一定比例分配社会劳动的基本原理,是我国过去采用较多的一种方法。在市场经济下,很少采纳。

采用tdbchart控件

procedure TForm1Button1Click(Sender: Object);

var

LS: TLineSeries;

begin

LS := TLineSeriesCreate(DBChart1); //这里假设你用的是DBChart1

LSParentChart := DBChart1;

LSTitle := '标题'

LSDataSource := Adoquery1; //这里假设你用的adoquery1作为dataset

LSXLabelsSource := '你横坐标要显示的字段名称';

LSYValuesValueSource := ‘纵坐标的字段名称'; //必须是数值型

end;

以上就是关于如何用matlab实现频域块LMS算法全部的内容,包括:如何用matlab实现频域块LMS算法、城市数据库怎么预测的、delphi利用数据库数据绘制曲线图等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9532042.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存