功率編程
㈠ matlab 怎麼編程計算有功功率
matlab實現經典功率譜估計
fft做出來是頻譜,psd做出來是功率譜;功率譜丟失了頻譜的相位信息;頻譜不同的信號其功率譜是可能相同的;功率譜是幅度取模後平方,結果是個實數
matlab中自功率譜密度直接用psd函數就可以求,按照matlab的說法,psd能實現Welch法估計,即相當於用改進的平均周期圖法來求取隨機信號的功率譜密度估計。psd求出的結果應該更光滑吧。
1、直接法:
直接法又稱周期圖法,它是把隨機序列x(n)的N個觀測數據視為一能量有限的序列,直接計算x(n)的離散傅立葉變換,得X(k),然後再取其幅值的平方,並除以N,作為序列x(n)真實功率譜的估計。
Matlab代碼示例:
clear;
Fs=1000; %采樣頻率
n=0:1/Fs:1;
%產生含有雜訊的序列
xn=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n));
window=boxcar(length(xn)); %矩形窗
nfft=1024;
[Pxx,f]=periodogram(xn,window,nfft,Fs); %直接法
plot(f,10*log10(Pxx));
㈡ 功率可編程直流電源的中科電XG 850/1500/1700分別表示什麼它們的電壓、電流和功率各是多少
功率可編程直流電源的中科電XG 850表示850瓦,1U半機架寬度直流電源,科電XG1500&XG1700系列是1500瓦及1700瓦輸出1U全機架寬的直流電源。
XG 850 : 電壓范圍: 6V~600V; 電流范圍: 1A~110A; 功率范圍: 670W~850W
XG 1500 : 電壓范圍: 6V~600V; 電流范圍: 2A~187A; 功率范圍: 1500W~1560W
XG 1700 : 電壓范圍: 6V~600V; 電流范圍: 2A~220A;功率范圍: 1330W~1710W
㈢ 用Matlab求離散信號的能量與功率怎麼編程
關於譜能量,有這樣一種解釋,你可以試著去算一算
信號可以分成能量信號與功率信號,非周期能量信號具有能量譜密度,是傅立葉變換的平方,功率信號具有功率譜密度,其與自相關函數是一對傅立葉變換對,等於傅立葉變換的平方/區間長度。不能混淆。能量信號是沒有功率譜的。
胡廣書老師的書上找到這么一段話,「隨機信號在時間上是無限的,在樣本上也是無窮多,因此隨機信號的能量是無限的,它應是功率信號。功率信號不滿足付里葉變換的絕對可積的條件,因此其付里葉變換是不存在的。如確定性的正弦函數的付里葉變換是不存在,只有引入了沖激函數才求得其付里葉變換。因此,對隨機信號的頻譜分析,不再簡單的是頻譜,而是功率譜。」
對於確定性信號而言,裡面存在能量信號,是沒有功率譜密度的,也存在功率信號,是有功率譜密度的。所以信號的頻譜與是否是確定性信號沒有必然聯系。
以下論點來源於研學論壇:
頻譜是信號的傅立葉變換。它描述了信號在各個頻率上的分布大小。頻譜的平方(當能量有限,平均功率為0時稱為能量譜)描述了信號能量在各個頻率上的分布大小。
計算過程中,都是通過樣本數據的快速傅立葉變換來計算。但不同的是,信號的頻譜是復數,包含幅頻響應和相頻響應,重復計算時的結果基本相同。 而隨機信號的功率譜也可以對數據進行FFT,但必須計算模值的平方,因為功率譜是實數。而且換一組樣本後,計算的結果略有不同,因為隨機信號的樣本取值不同。要得到真實的功率譜必須進行多次平均,次數越多越好。
根據parseval定理,信號傅氏變換模平方被定義為能量譜,即單位頻率范圍內包含的信號能量。自然,能量跟功率有一個時間平均的關系,所以,能量譜密度在時間上平均就得到了功率譜。
matlab實現經典功率譜估計
fft做出來是頻譜,psd做出來是功率譜;功率譜丟失了頻譜的相位信息;頻譜不同的信號其功率譜是可能相同的;功率譜是幅度取模後平方,結果是個實數
matlab中自功率譜密度直接用psd函數就可以求,按照matlab的說法,psd能實現Welch法估計,即相當於用改進的平均周期圖法來求取隨機信號的功率譜密度估計。psd求出的結果應該更光滑吧。
1、直接法:
直接法又稱周期圖法,它是把隨機序列x(n)的N個觀測數據視為一能量有限的序列,直接計算x(n)的離散傅立葉變換,得X(k),然後再取其幅值的平方,並除以N,作為序列x(n)真實功率譜的估計。
Matlab代碼示例:
clear;
Fs=1000;%采樣頻率
n=0:1/Fs:1;
%產生含有雜訊的序列
xn=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n));
window=boxcar(length(xn));%矩形窗
nfft=1024;
[Pxx,f]=periodogram(xn,window,nfft,Fs);%直接法
plot(f,10*log10(Pxx));
2、間接法:
間接法先由序列x(n)估計出自相關函數R(n),然後對R(n)進行傅立葉變換,便得到x(n)的功率譜估計。
Matlab代碼示例:
clear;
Fs=1000;%采樣頻率
n=0:1/Fs:1;
%產生含有雜訊的序列
xn=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n));
nfft=1024;
cxn=xcorr(xn,'unbiased');%計算序列的自相關函數
CXk=fft(cxn,nfft);
Pxx=abs(CXk);
index=0:round(nfft/2-1);
k=index*Fs/nfft;
plot_Pxx=10*log10(Pxx(index+1));
plot(k,plot_Pxx);
3、改進的直接法:
對於直接法的功率譜估計,當數據長度N太大時,譜曲線起伏加劇,若N太小,譜的解析度又不好,因此需要改進。
3.1、Bartlett法
Bartlett平均周期圖的方法是將N點的有限長序列x(n)分段求周期圖再平均。
Matlab代碼示例:
clear;
Fs=1000;
n=0:1/Fs:1;
xn=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n));
nfft=1024;
window=boxcar(length(n));%矩形窗
noverlap=0;%數據無重疊
p=0.9;%置信概率
[Pxx,Pxxc]=psd(xn,nfft,Fs,window,noverlap,p);
index=0:round(nfft/2-1);
k=index*Fs/nfft;
plot_Pxx=10*log10(Pxx(index+1));
plot_Pxxc=10*log10(Pxxc(index+1));
figure(1)
plot(k,plot_Pxx);
pause;
figure(2)
plot(k,[plot_Pxxplot_Pxx-plot_Pxxcplot_Pxx+plot_Pxxc]);
3.2、Welch法
Welch法對Bartlett法進行了兩方面的修正,一是選擇適當的窗函數w(n),並再周期圖計算前直接加進去,加窗的優點是無論什麼樣的窗函數均可使譜估計非負。二是在分段時,可使各段之間有重疊,這樣會使方差減小。
Matlab代碼示例:
clear;
Fs=1000;
n=0:1/Fs:1;
xn=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n));
nfft=1024;
window=boxcar(100);%矩形窗
window1=hamming(100);%海明窗
window2=blackman(100);%blackman窗
noverlap=20;%數據無重疊
range='half';%頻率間隔為[0Fs/2],只計算一半的頻率
[Pxx,f]=pwelch(xn,window,noverlap,nfft,Fs,range);
[Pxx1,f]=pwelch(xn,window1,noverlap,nfft,Fs,range);
[Pxx2,f]=pwelch(xn,window2,noverlap,nfft,Fs,range);
plot_Pxx=10*log10(Pxx);
plot_Pxx1=10*log10(Pxx1);
plot_Pxx2=10*log10(Pxx2);
figure(1)
plot(f,plot_Pxx);
pause;
figure(2)
plot(f,plot_Pxx1);
pause;
figure(3)
plot(f,plot_Pxx2);
㈣ 功率迭代演算法的matlab編程
DSP正在成為一種幾乎無處不在的技術,不僅應用在眾多消費電子、汽車與電話產品中,而且也進入越來越先進的設備。
諸如無線基站、雷達信號處理、指紋識別以及軟體無線電等應用都要求極高的處理能力。這些新類型的高性能DSP應用推動獨立處理器的性能走高,而為了提升性能,硬體解決方案也在不斷發展。
在90年代初,設計者面臨的挑戰是,如何採用多個處理器以匯聚更多的處理能力,從而滿足他們的性能要求。但是在協調多個處理器的功能時,系統級設計變得極為困難,更不用說這種方法既昂貴又浪費資源。
㈤ 跪求,經過MAX197A/D轉換、單片機AT89C51處理、1602編程顯示, 顯示電流、電壓 功率、功率因數編程。
#include"reg51.h"
#include<stdio.h>
#include <intrins.h>
typedef unsigned char uchar;
typedef unsigned int uint;
#define LCD_Data P0
#define Busy 0x80 //用於檢測LCD狀態字中的Busy標識
sbit LCD_RS=P2^7;//定義引腳
sbit LCD_RW=P2^6;
sbit LCD_E=P2^5;
float volts,amps;
//5ms延時
void Delay5Ms(void)
{
unsigned int TempCyc = 5552;
while(TempCyc--);
}
//400ms延時
void Delay400Ms(void)
{
unsigned char TempCycA = 5;
unsigned int TempCycB;
while(TempCycA--)
{
TempCycB=7269;
while(TempCycB--);
};
}
//讀狀態
unsigned char ReadStatusLCD(void)
{
LCD_Data = 0xFF;
LCD_RS = 0;
LCD_RW = 1;
LCD_E = 0;
LCD_E = 0;
LCD_E = 1;
while (LCD_Data & Busy); //檢測忙信號
return(LCD_Data);
}
//寫數據
void WriteDataLCD(unsigned char WDLCD)
{
ReadStatusLCD(); //檢測忙
LCD_Data = WDLCD;
LCD_RS = 1;
LCD_RW = 0;
LCD_E = 0; //若晶振速度太高可以在這後加小的延時
LCD_E = 0; //延時
LCD_E = 1;
}
//寫指令
void WriteCommandLCD(unsigned char WCLCD,BuysC) //BuysC為0時忽略忙檢測
{
if (BuysC) ReadStatusLCD(); //根據需要檢測忙
LCD_Data = WCLCD;
LCD_RS = 0;
LCD_RW = 0;
LCD_E = 0;
LCD_E = 0;
LCD_E = 1;
}
//讀數據
unsigned char ReadDataLCD(void)
{
LCD_RS = 1;
LCD_RW = 1;
LCD_E = 0;
LCD_E = 0;
LCD_E = 1;
return(LCD_Data);
}
void LCDInit(void) //LCM初始化
{
LCD_Data = 0;
WriteCommandLCD(0x38,0); //三次顯示模式設置,不檢測忙信號
Delay5Ms();
WriteCommandLCD(0x38,0);
Delay5Ms();
WriteCommandLCD(0x38,0);
Delay5Ms();
WriteCommandLCD(0x38,1); //顯示模式設置,開始要求每次檢測忙信號
WriteCommandLCD(0x08,1); //關閉顯示
WriteCommandLCD(0x01,1); //顯示清屏
WriteCommandLCD(0x06,1); // 顯示游標移動設置
WriteCommandLCD(0x0C,1); // 顯示開及游標設置
}
//按指定位置顯示一個字元
void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)
{
Y &= 0x1;
X &= 0xF; //限制X不能大於15,Y不能大於1
if (Y) X |= 0x40; //當要顯示第二行時地址碼+0x40;
X |= 0x80; // 算出指令碼
WriteCommandLCD(X, 0); //這里不檢測忙信號,發送地址碼
WriteDataLCD(DData);
}
//按指定位置顯示一串字元
void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData)
{
unsigned char ListLength;
ListLength = 0;
Y &= 0x1;
X &= 0xF; //限制X不能大於15,Y不能大於1
while (DData[ListLength]>=0x20) //若到達字串尾則退出
{
if (X <= 0xF) //X坐標應小於0xF
{
DisplayOneChar(X, Y, DData[ListLength]); //顯示單個字元
ListLength++;
X++;
}
}
}
把你的電壓電流什麼的放在數組里,然後用 DisplayListChar()這個命令顯示出來,格式比如 DisplayListChar(0,0,dianya[])什麼的,0行0列顯示電壓。把這一大段程序放在你的mian函數上面,在mian函數里寫顯示什麼東西 。顯示的東西放不下加個按鍵,按一下顯示下一種數據
㈥ matlab如何編程以下計算 計算功率p.圖1中藍線是u,黑線是i,功率p的計算公式是圖2. 現
首先你的i和u是離散的還是連續的?又有圖像又有點的不太清楚你的意思。
如果是離散的就簡單了直接用cunsum矩形求積分或者trapz梯形求積分
如果是連續的,你需要先建立函數
比如function i=myfun(t)
i=t.*t+t;
end
function u=myfun2(t)
u=2.*t-3;
end
funtion f=myfun3(t)
f=myfun(t).*myfun2(t);
end
將前面的函數分別保存
然後用quad或quadl積分,在命令窗口輸入,計算
quadl(『myfun3』,0,3)計算從0到3的積分
㈦ 用Matlab求離散信號的能量與功率怎麼編程
關於譜能量,有這樣一種解釋,你可以試著去算一算信號可以分成能量信號與功率信號,非周期能量信號具有能量譜密度,是傅立葉變換的平方,功率信號具有功率譜密度,其與自相關函數是一對傅立葉變換對,等於傅立葉變換的平方/區間長度。不能混淆。用Matlab求離散信號的能量與功率怎麼編程
㈧ matlab 怎麼編程計算有功功率
matlab實現經典功率譜估計
fft做出來是頻譜,psd做出來是功率譜;功率譜丟失了頻譜的相位信息;頻譜不同的信號其功率譜是可能相同的;功率譜是幅度取模後平方,結果是個實數
matlab中自功率譜密度直接用psd函數就可以求,按照matlab的說法,psd能實現Welch法估計,即相當於用改進的平均周期圖法來求取隨機信號的功率譜密度估計。psd求出的結果應該更光滑吧。
1、直接法:
直接法又稱周期圖法,它是把隨機序列x(n)的N個觀測數據視為一能量有限的序列,直接計算x(n)的離散傅立葉變換,得X(k),然後再取其幅值的平方,並除以N,作為序列x(n)真實功率譜的估計。
Matlab代碼示例:
clear;
Fs=1000;
%采樣頻率
n=0:1/Fs:1;
%產生含有雜訊的序列
xn=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n));
window=boxcar(length(xn));
%矩形窗
nfft=1024;
[Pxx,f]=periodogram(xn,window,nfft,Fs);
%直接法
plot(f,10*log10(Pxx));
㈨ 編程中功率和順時針哪個在前
功率在前。
編程(biānchéng)是編定程序的中文簡稱,就是讓計算機代為解決某個問題,對某個計算體系規定一定的運算方式,使計算體系按照該計算方式運行,並最終得到相應結果的過程。
㈩ 什麼是可編程輸出功率
就是通過編程可以任意改變系統的輸出功率