用快速傅里叶变换(fft)
频率提取(FFT)的Matlab实现,代码如下
clear
%编写骆遥
fs=1000
t=0:1/fs:06;
f1=100;
f2=300;
x=sin(2pif1t)+sin(2pif2t);
subplot(711)
plot(x);
title('f1(100Hz)\f2(300Hz)的正弦信号,初相0')
xlabel('序列(n)')
grid on
number=512
y=fft(x,number);
n=0:length(y)-1;
f=fsn/length(y);
subplot(713)
plot(f,abs(y));
title('f1\f2的正弦信号的FFT(512点)')
xlabel('频率Hz')
grid on
x=x+randn(1,length(x));
subplot(715)
plot(x);
title('原f1\f2的正弦信号(含随机噪声)')
xlabel('序列(n)')
grid on
y=fft(x,number);
n=0:length(y)-1;
f=fsn/length(y);
subplot(717)
plot(f,abs(y));
title('原f1\f2的正弦信号(含随机噪声)的FFT(512点)')
xlabel('频率Hz')
grid on
你好,如果是学生的话最好去官网购买,600多可以买到好几个工具箱和基本的配置了,>
1
打开图像
[FileName, FilePath]=uigetfile('jpg;png;tif;img;gif;','请选择图像数据');
str=[FilePath FileName];
Image=imread(str);
% 以对话框的形式选择打开一幅图像
2
设置参数
Gray=rgb2gray(Image);
R=Image(:,:,1); G=Image(:,:,2); B=Image(:,:,3);
diff_R=0; diff_G=0; diff_B=0; % 设置红、绿、蓝三种颜色提取阈值(越大越严格)
3
红色提取
Image_R=Image;
RP_R=Image(:,:,1); RP_G=Image(:,:,2); RP_B=Image(:,:,3);
XYR=~((R-G)>diff_R&(R-B)>diff_R); % 提取红色条件是R分量与G、B分量差值大于设定
Mask=Gray(XYR); % 灰照片掩膜
RP_R(XYR)=Mask; RP_G(XYR)=Mask; RP_B(XYR)=Mask; % 使得非红色区域变为灰色
Image_R(:,:,1)=RP_R; Image_R(:,:,2)=RP_G; Image_R(:,:,3)=RP_B;
4
绿色提取
Image_G=Image;
GP_R=Image(:,:,1); GP_G=Image(:,:,2); GP_B=Image(:,:,3);
XYG=~((G-R)>diff_G&(G-B)>diff_G); % 提取绿色条件是G分量与R、B分量差值大于设定
Mask=Gray(XYG); % 灰照片掩膜
GP_R(XYG)=Mask; GP_G(XYG)=Mask; GP_B(XYG)=Mask; % 使得非绿色区域变为灰色
Image_G(:,:,1)=GP_R; Image_G(:,:,2)=GP_G; Image_G(:,:,3)=GP_B;
5
蓝色提取
Image_B=Image;
BP_R=Image(:,:,1);BP_G=Image(:,:,2);BP_B=Image(:,:,3);
XYB=~((B-R)>diff_B&(B-G)>diff_B); % 提取绿色条件是G分量与R、B分量差值大于设定
Mask_B=Gray(XYB); % 灰照片掩膜
BP_R(XYB)=Mask_B; BP_G(XYB)=Mask_B; BP_B(XYB)=Mask_B; % 使得非蓝色区域变为灰色
Image_B(:,:,1)=BP_R; Image_B(:,:,2)=BP_G; Image_B(:,:,3)=BP_B;
6
显示结果
subplot(2,2,1),imshow(Image); title('Image');
subplot(2,2,2),imshow(Image_R); title('Red Pass');
subplot(2,2,3),imshow(Image_G); title('Green Pass');
subplot(2,2,4),imshow(Image_B); title('Blue Pass');
>
尝试执行脚本错误的功能。
警告: MATLAB的似乎没有成功设置的搜索路径。为了避免
这个
警告说,下一次启动MATLAB的使用
>
首先你要提出一个自己的策略,一般来说就是一些规则的判断了,然后根据这些规则产生出signal,就是交易信号。 发出了交易信号,就要根据信号进行持仓或者平仓 *** 作。你要建立一个向量记录你每天的资产净值,或者说资产序列,其中的P&L 就是跟你持仓的股票的价格变化来决定的。。。
说白了 就是个模拟
clc;clear all;
file = input('要处理的数据文件名:','s');
path = cd();
s1 = dir(path);
[m,n]=size(s1);
for i = 3:m
if s1(i)isdir
s2 = dir([path '/' s1(i)name]);
[p,q]=size(s2);
for j = 3:p
csvfilename = [path '\' s1(i)name '\' s2(j)name '\' file];
fprintf('%s\n',csvfilename);
[d1,Y]=textread(csvfilename,'%d%f%[^\n]','delimiter',',');
Y(find(d1<93000))=[]; %去掉093000之前的数据
matfilename = [s2(j)name 'mat'];
save(matfilename,'Y');
end
end
end
要处理的数据文件名:SH600000CSV
D:\MATLAB\working\2013\201301\20130102\SH600000CSV
D:\MATLAB\working\2013\201301\20130103\SH600000CSV
D:\MATLAB\working\2013\201301\20130104\SH600000CSV
D:\MATLAB\working\2013\201301\20130105\SH600000CSV
D:\MATLAB\working\2013\201301\20130122\SH600000CSV
D:\MATLAB\working\2013\201301\20130131\SH600000CSV
D:\MATLAB\working\2013\201302\20130203\SH600000CSV
D:\MATLAB\working\2013\201302\20130204\SH600000CSV
D:\MATLAB\working\2013\201302\20130205\SH600000CSV
D:\MATLAB\working\2013\201303\20130302\SH600000CSV
D:\MATLAB\working\2013\201303\20130312\SH600000CSV
D:\MATLAB\working\2013\201303\20130331\SH600000CSV
D:\MATLAB\working\2013\201304\20130403\SH600000CSV
D:\MATLAB\working\2013\201304\20130415\SH600000CSV
D:\MATLAB\working\2013\201305\20130503\SH600000CSV
D:\MATLAB\working\2013\201305\20130505\SH600000CSV
D:\MATLAB\working\2013\201306\20130602\SH600000CSV
D:\MATLAB\working\2013\201306\20130631\SH600000CSV
s1=tf(10,[1,0])
s2=tf(1,[01,1])
s3=tf(5,[0 1])
sol=s1s2s3
scl=tf(sol/(1+sol))
结果为
5 s^2 + 50 s
---------------------------------
001 s^4 + 02 s^3 + 6 s^2 + 50 s
以上就是关于matlab里对一个电流信号采样,获得该信号的频率,该怎么实现呢谢谢呢!全部的内容,包括:matlab里对一个电流信号采样,获得该信号的频率,该怎么实现呢谢谢呢!、如何在matlab官网获得密钥、MATLAB中怎样提取一幅图像的RGB信息,并且将结果输出到一个矩阵中等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)