Ⅰ 快速查找二維數組的所有峰值,c語言實現最好,python也可以,最好能實現濾波。
#include<stdio.h>
#include<stdlib.h>
#include<limits.h>
#include<malloc.h>
#definemaxsize6//每個波形數據最大採集個數默認6
typedefstructarray1
{
int*data;
structarray1*next;
}ARR1;
ARR1*addNewArr(ARR1*arrHead,ARR1*arrTail);//插入一組波形數據節點返回尾節點
intfindMaxF(ARR1*arrHead);//查找最大峰值
intremoveMinF(ARR1*arrHead);//移除最小峰值數據組返回最小峰值
voidprintfArr(ARR1*arrHead);//列印數據鏈表
intmain()
{
ARR1*arrHead=(ARR1*)malloc(sizeof(ARR1));
arrHead->next=NULL;
ARR1*arrTail=NULL;
arrTail=addNewArr(arrHead,arrTail);//想插入幾組,就調用幾次我就測試6組
arrTail=addNewArr(arrHead,arrTail);
arrTail=addNewArr(arrHead,arrTail);
arrTail=addNewArr(arrHead,arrTail);
arrTail=addNewArr(arrHead,arrTail);
arrTail=addNewArr(arrHead,arrTail);
printf("採集的原數據組為:
");
printfArr(arrHead);
printf("最大峰值:%d,最小峰值值:%d
",findMaxF(arrHead),removeMinF(arrHead));
printf("刪除最小峰值數據組後的數據為:
");
printfArr(arrHead);
return0;
}
voidprintfArr(ARR1*arrHead)//列印數據鏈表
{
while(arrHead->next!=NULL)
{
printf("%d,%d,%d,%d,%d,%d
",arrHead->next->data[0],arrHead->next->data[1],arrHead->next->data[2],arrHead->next->data[3],arrHead->next->data[4],arrHead->next->data[5]);
arrHead=arrHead->next;
}
}
ARR1*addNewArr(ARR1*arrHead,ARR1*arrTail)//插入一組波形數據返回尾節點
{
int*data=(int*)malloc(sizeof(int)*maxsize),i;
printf("採集一組波形數據(最大採集個數%d):",maxsize);
for(i=0;i<maxsize;i++)
scanf("%d",&data[i]);
ARR1*arrNew=(ARR1*)malloc(sizeof(ARR1));
arrNew->data=data;
arrNew->next=NULL;
if(arrHead->next==NULL)//插入第一組數組作為首節點
arrHead->next=arrNew;
else
arrTail->next=arrNew;
arrTail=arrNew;
returnarrTail;
}
intfindMaxF(ARR1*arrHead)//查找最大峰值
{
inti,maxNum=0,maxf=0;
while(arrHead->next!=NULL)
{
maxNum=0;
for(i=0;i<maxsize;i++)//獲取每組數據的峰值
{
if(arrHead->next->data[i]>maxNum)
maxNum=arrHead->next->data[i];
}
if(maxNum>maxf)//獲取最大峰值
maxf=maxNum;
arrHead=arrHead->next;
}
returnmaxf;
}
intremoveMinF(ARR1*arrHead)//移除最小峰值數據組返回最小峰值
{
inti,maxNum=0,minf=INT_MAX;
ARR1*minDataSave=NULL,*arrHeadSave=arrHead;
while(arrHead->next!=NULL)
{
maxNum=0;
for(i=0;i<maxsize;i++)//獲取每組數據的峰值
{
if(arrHead->next->data[i]>maxNum)
maxNum=arrHead->next->data[i];
}
if(maxNum<minf)//獲取最小峰值
{
minDataSave=arrHead->next;
minf=maxNum;
}
arrHead=arrHead->next;
}
arrHead=arrHeadSave;
//移除最小峰值數據組
while(arrHead->next!=NULL)
{
if(arrHead->next==minDataSave)//刪除節點重組鏈表
{
arrHead->next=minDataSave->next;
minDataSave->next=NULL;
free(minDataSave->data);//釋放節點內存
free(minDataSave);
break;
}
arrHead=arrHead->next;
}
returnminf;
}
Ⅱ γ能譜分析方法
探測器種類不同,γ能譜分析方法常常不同,下面主要介紹NaI(Tl)γ譜儀能譜法和高純鍺γ譜儀能譜法。
66.6.2.1 NaI(Tl)γ譜儀能譜法
主要儀器BH1936低本底多道γ能譜儀。對137Cs點源γ射線的能量(661.661keV)解析度應小於9%,系統能量線性≤1%(50keV~2.0MeV),核素比活度分析不確定度≤20%。
(1)試樣的採集和制備
高純鍺(HPGe)或碘化鈉[NaI(Tl)]γ能譜儀能夠對地質、水、土壤、環境和生物試樣進行放射性γ核素(Ra、Th、K)分析。試樣的採集應根據統計抽樣的原則,充分考慮到試樣的代表性。試樣的採集和制備應根據不同的試樣採取不同方法的原則,具體試樣的采樣量和制備如下:
A.地質試樣和環境試樣的制備。采樣用隨機抽樣的方法,采樣點應注意土壤或環境試樣的空間分布。對一個測區而言,采樣點越多,試樣重量越大,越具有代表性。
每一采樣點上採集試樣的體積和質量對測量結果的平均值和變異性有直接的影響,試樣量越多,平均值的變異越小。決定試樣采樣量時,應考慮采樣對象的粒度、成分、部位、時間、放射性水平和監測儀器的最低探測限。
原則上,最小采樣量由監測分析樣量MAmin和備用量M0min兩部分構成,即:
M=MAmin+M0min
若儀器的最低探測限為LD,則單次分析所需最小試樣量為:
岩石礦物分析第三分冊有色、稀有、分散、稀土、貴金屬礦石及鈾釷礦石分析
式中:MAmin為單樣最小分析試樣量,L或kg;LD為儀器最低探測限,Bq;Y為分析方法的化學回收率;η為儀器的探測效率,s-1·Bq-1;A為一試樣中待測核素的濃度或比活度,Bq;λ為待測核素的衰變常數,s-1;t為從采樣到測量之間的時間間隔,s。
按公式估計的單樣監測分析最小試樣量MAmin乘以所需試樣容量n,即可求得最小采樣總量MAmin。儲存備用試樣量一般可取MAmin的1~3倍,為事後重復測量、仲裁所需的試樣量。
地質試樣或環境試樣採集後,應剔除雜質、碎石等異物。經烘乾至恆量後,用粉碎機粉碎過篩(粒徑不大於0.16mm),稱量後裝入與刻度譜儀的體標准源相同形狀和體積的試樣盒中,稱量(精確至1g)、密封、待測。
B.生物試樣的制備。採集的試樣必須具有代表性,試樣的預處理詳見GB/T16145—1995補充件,採集的試樣量可根據下面的方程來估算:
岩石礦物分析第三分冊有色、稀有、分散、稀土、貴金屬礦石及鈾釷礦石分析
式中:A為分析試樣的放射性比活度,這是可定量分析的最小活度,Bq/kg(L);t為測量試樣的時間,s;a為在時間t內,譜儀可測量到的最小計數率,s-1(通常指核素特徵峰面積計數率);W為採集試樣質量或體積,kg(L);ε為譜儀探測效率(通常指全能峰效率),%;f為被測試樣所佔采樣量份額(包括灰樣比,詳見GB/T16145—1995附件);P為被分析核素特徵峰的γ發射概率;Y為化學分析回收率。
估算時因參數(ta)、W、f、ε、Y等值在很大范圍內可有多種組合滿足式(66.52),故應根據測量的目的要求、現有條件和花費成本最低等原則,實行優化組合來確定采樣量的多少。對一台測量裝置固定的γ譜儀,可根據相對測量誤差的要求,對(ta)值和特性指數(f、ε、P、Y、t)作出一些估計和假設,然後按A-W關系曲線確定W值。當試樣可能出現多種核素時,應以估計的W值中最大者為確定的采樣量。
A值可根據佔有資料分析估計,或通過粗略預測來估計。當監測的目的是判斷和記錄核素濃度是否超過限值1/10或1/4以上濃度時,A值可用相應1/10或1/4限值濃度來代替。
根據試樣放射性核素含量強弱,試樣量(質量或體積)多少,譜儀類型和其系統的主要性能指標,以及現有條件,選擇最合適的試樣盒制備試樣。制備試樣應滿足下列原則要求。
a.確保使用的試樣盒未被放射性污染。
b.對可能引起放射性核素壁吸附的試樣(如液體或呈流汁狀態試樣),必須選擇壁吸附小或經一定壁吸附預處理的試樣盒裝樣。
c.裝樣密度盡可能均勻,並盡量保證與刻度源的質量、密度、體積一樣。
d.對含有易揮發核素或伴有放射性氣體生成的試樣,以及需要使母子核素達到平衡後再測量的試樣,在裝樣後必須密封。
e.對試樣量充足,預測核素含量很低,裝樣密度又小於標准源的試樣(通常可能是一些直接分析的試樣),可以選用特殊的工具和手段(如壓縮機),把試樣盡可能壓縮到試樣盒中。
f.裝樣體積和試樣質量應盡可能精確,前者誤差應控制在5%以內,後者應小於1%。
C.水試樣的制備。一次分析所需水樣的量由下式計算:
岩石礦物分析第三分冊有色、稀有、分散、稀土、貴金屬礦石及鈾釷礦石分析
式中:V為一次分析所需用水量,L;A(LLD)為γ能譜系統的探測下限,Bq;Q為試樣中核素的預計濃度,Bq/L;r為預處理過程中核素的回收率。
如果要求做n個平行樣,需要的總水樣量為nV。
當水樣中的放射性核素濃度大於1Bq/L時,可以直接量取體積大於400mL的試樣置於測量容器內,密封待測,否則應進行必要的預處理。
水樣預處理要在不損失原樣中放射性核素的條件下均勻地濃縮以便製成γ能譜測量分析的試樣。降水(雨水、雪水),淡水(河水、湖水、飲用水等)和海水試樣的預處理方法參見GB/T16140—1995附錄A(補充件)。
(2)試樣的測量
當低本底γ能譜分析系統(以下簡稱低本底γ譜儀)經過嚴格的能量刻度、探測效率和探測下限的確定後,在進行試樣測量前用標准試樣進行系統的穩定性和狀態檢查,以便及時發現問題,確保測量分析結果的准確有效。
A.測量的基本程序。
a.測量γ能譜儀的本底。一般情況下,由於本底計數很低。對於低含量試樣來說,為了保證本底測量的結果滿足一定的統計漲落要求,本底測量一般測量時間較長,需要測量8~10h,然後將本底譜存入計算機系統以備後用。
b.測量標准源。檢查系統的狀態與穩定性。每次正式測量開始時,都應首先進行標准源測量。
c.測量試樣。將待測試樣放入譜儀系統待測位置,使被測試樣與標准源的測量狀態保持一致。即試樣盒、裝樣量、密封條件一樣;放置的幾何條件一樣;測量時間一樣。獲得試樣的γ能譜。
d.分析測量結果。對測得的γ能譜的分析主要是定性分析(即識別峰位,確定所含放射性核素)和定量分析(即確定所含放射性核素的比活度)。
e.測量結果的不確定度分析與對試樣的評判。
B.試樣核素活度的計算。當測量獲取的試樣譜存檔後,調用譜儀的譜分析程序進行核素的定性、定量分析。
首先,程序用指定的尋峰方法進行尋峰(也可以先對譜數據進行平滑)。程序常用的平滑方法有多項式最小二乘移動平滑法和多項式加權平滑公式。常用的尋峰方法有一、二、三階導數法等。尋峰的結果確認譜中存在的全能峰並確定其峰位,計算峰位所對應的能量。然後,程序對每一個尋找到的峰計算其峰凈峰面積(用TPA法或函數擬合法),並於核素庫中的譜數據進行比較,確認譜中存在的核素。對確認的核素計算其活度值。
a.效率曲線法。活度計算公式:
岩石礦物分析第三分冊有色、稀有、分散、稀土、貴金屬礦石及鈾釷礦石分析
式中:A為試樣中核素的活度,Bq/L和Bq/kg;a為特徵峰面積計數率,s-1;b為本底峰面積計數率,s-1;C符為符合相加修正因子;P為γ發射概率;ε為γ射線全能峰效率;Fa為相對自吸收修正系數;M為試樣質量或體積,kg或L;t為核素衰變時間,即從采樣到測量的時間間隔;λ為核素衰變常數,λ=ln2/T1/2,T1/2是半衰期,它和ta的單位一致;
Cd為核素在測量時間的衰變校正因子,按下面公式計算:
Cd=λtc/(1-e-λt)
這里,tc為測量試樣的真實時間。如果分析的核素半衰期與測量的時間相比很長,Cd可取為1。
b.相對比較法。程序分析給出峰凈面積以後,活度A可按下式計算:
岩石礦物分析第三分冊有色、稀有、分散、稀土、貴金屬礦石及鈾釷礦石分析
其他符號含義與式(66.54)相同。
當使用幾個γ射線全能峰測定某核素的活度A時,應首先由每個全能峰按上式分別計算出該核素的活度Ai及其第一類不確定度δA,然後由下式計算:
岩石礦物分析第三分冊有色、稀有、分散、稀土、貴金屬礦石及鈾釷礦石分析
岩石礦物分析第三分冊有色、稀有、分散、稀土、貴金屬礦石及鈾釷礦石分析
可見,使用幾個γ射線全能峰,可減小A的統計不確定度。
66.6.2.2 高純鍺γ能譜分析法
詳見66.3.2高純鍺γ能譜分析法。
Ⅲ origin8.0里怎麼自動尋找峰值並標定
先做出圖來,圖片左側豎排的工具欄里有一個圖標是由正方形和十字組成的,點擊那個圖標後,再在圖上點擊峰值就可以了。
Origin具有兩大主要功能:數據分析和繪圖。Origin的數據分析主要包括統計、信號處理、圖像處理、峰值分析和曲線擬合等各種完善的數學分析功能。准備好數據後,進行數據分析時,只需選擇所要分析的數據,然後再選擇相應的菜單命令即可。Origin的繪圖是基於模板的,Origin本身提供了幾十種二維和三維繪圖模板而且允許用戶自己定製模板。繪圖時,只要選擇所需要的模板就行。用戶可以自定義數學函數、圖形樣式和繪圖模板;可以和各種資料庫軟體、辦公軟體、圖像處理軟體等方便的連接。
Origin可以導入包括ASCII、Excel、pClamp在內的多種數據。另外,它可以把Origin圖形輸出到多種格式的圖像文件,譬如JPEG、GIF、EPS、TIFF等等。
Origin裡面也支持編程,以方便拓展Origin的功能和執行批處理任務。Origin裡面有兩種編程語言——LabTalk和Origin C。
在Origin的原有基礎上,用戶可以通過編寫X-Function來建立自己需要的特殊工具。X-Function可以調用Origin C和NAG函數,而且可以很容易地生成交互界面。用戶可以定製自己的菜單和命令按鈕,把X-Function放到菜單和工具欄上,以後就可以非常方便地使用自己的定製工具。(註:X-Function是從8.0版本開始支持的。之前版本的Origin主要通過Add-On Moles來擴展Origin的功能。)
Ⅳ xps校正用最強的C峰么
xps校正用最強的C峰。需以C為校準峰進行荷電校正C單質的標准峰位一般284點8減實際測得的C單質峰位等於需平移的,校正的目的是為了避免儀器誤差,校正的原則是讓C1s的峰位和標准峰位重合。
xps校正用最強的C峰的方法
首先我們要會看XPS高分辨譜原始數據,我們將各元素的高分辨譜的關鍵數據各元素的結合能和譜峰強度拷貝入origin的數據模塊,然後打開該文件,我們可以看到各種特定元素的高分辨譜及對它們進行半定量分析的原始數據。
然後我們需先對原始數據進行荷電校準,然後校準時一般用外來污染碳284點8eV作為基準,所用工具為Origin軟體,接下來由於外來污染碳的標准值為284點8eV,故荷電校正值為284點8eV減284點7eV等於0點1eV。
Ⅳ 五個峰:分別是c-h、 c-c、 c-o 、c=o 、o-h什麼意思
加成反應是機物分子中的雙鍵或叄鍵發生斷裂,故C錯誤;
酯化反應的機理是酸脫羥基醇脫氫,碳氧鍵斷裂,故C錯誤;
乙醇酯化脫去羥基上的氫原子,即氫氧鍵斷裂,故CD錯誤;
乙醇的催化氧化的機理是醇脫去羥基上的氫以及與羥基所連的碳上的氫,故A正確、B錯誤;
故選A.
Ⅵ 貪心演算法總結
做了這10道題,其實發現貪心演算法沒有什麼規律,要說有什麼共同特點就是都是由局部最優從而推出全局最優,每個題基本上都要考慮其局部最優是什麼,其全局最優是什麼,所以雖然都用到了貪心演算法的思想,但是題與題之間又沒有什麼規律可言。
現在把這10道題的思路總結一下(總結主要以我的主觀看法在寫,可能別人看會不知道我在說什麼)
1.分發餅干:
https://programmercarl.com/0455.%E5%88%86%E5%8F%91%E9%A5%BC%E5%B9%B2.html
思路:想要完成最多的小孩滿足,那麼就得最小的餅干給胃口最小的小孩
這里的貪心思想,
局部最優就是盡可能讓一個餅干喂飽一個
全局最優就是最多的小孩滿足
2.擺動序列:
https://programmercarl.com/0376.%E6%91%86%E5%8A%A8%E5%BA%8F%E5%88%97.html
思路:這里要找到最長的擺動序列,那麼其實就是找那些波峰波谷,如圖所示
可以看出來,在到達波峰波谷的路上有幾個數字不會影響什麼,可以直接去掉。
那麼這里的局部最優就是把單調坡上的點刪掉,保留最多的波峰波谷
全局最優就是得到對多的波峰波谷,即最長的擺動序列
3.最大子序和
https://programmercarl.com/0053.%E6%9C%80%E5%A4%A7%E5%AD%90%E5%BA%8F%E5%92%8C.html
這道題顯然可以暴力解出來,即列出所有子序和,找出最大的,不過計算量會比貪心大很多。
這里主要介紹貪心解的思想:
想要得到最大子序和,就得保證每次相加時,相加後不能為負數,因為負數繼續往下加一定是拉低總和的,那麼我們當加成到負數時就重新從下個數開始加,並實時記錄最大的子序和,這樣一遍循環就能得出最大子序和。
局部最優:加成負數就立刻停止,並從下個元素重新開始
全局最優:得到最大子序和
4.買賣股票的最佳時機II
https://programmercarl.com/0122.%E4%B9%B0%E5%8D%96%E8%82%A1%E7%A5%A8%E7%9A%84%E6%9C%80%E4%BD%B3%E6%97%B6%E6%9C%BAII.html
思路:想要得到最大利潤,那就要低價買入高價賣出,那麼怎樣的買賣才能得到最大利潤呢。
這里就體現出貪心演算法的「貪」字(我猜的),這道題貪在哪呢,貪在只要有利可圖就去做,即只要今天買入的價錢比明天賣出的價錢底,即有利可圖,那麼我就去做,做就是在今天買入,在明天賣出。
局部最優:得到每天的最大正利潤
全局最優:得到最大利潤
5.跳躍游戲
https://programmercarl.com/0055.%E8%B7%B3%E8%B7%83%E6%B8%B8%E6%88%8F.html
思路:每個數組的元素代表的是可以跳的最遠下標,那麼我們只要使那個最遠下標包含最後一個下標就是可以跳到,那麼我們每跳到一個位置就要更新那個可以跳的范圍,即可以跳到的最遠下標。
局部最優:每次跳躍都得出最遠的跳躍范圍
全局最優:最後能跳到的最大范圍
6.跳躍游戲II
https://programmercarl.com/0045.%E8%B7%B3%E8%B7%83%E6%B8%B8%E6%88%8FII.html
思路:這道題要得到最小的跳躍數,其實只要保證跳的是位置是可以跳范圍內更新最遠范圍的位置就可以了。
為什麼這么說呢?以題例來說:
我們剛開始在『0』的位置,我們能跳到『1』和『2』的位置,那麼我們怎麼跳呢?可以看到跳到『1』之後更新的最大范圍是『4』,跳到『2』之後更新的最大范圍是『3』,所以我們就跳『2』了,因為跳『1』之後更新的最大可跳范圍更大包含了跳『2』的最大可跳范圍,那麼肯定是跳『3』最優呀,這里就體現了局部最優的思想。
局部最優:每次跳後,更新的最大可調范圍最大
全局最優:跳躍次數最少
7.K次取反後最大化的數組和
https://programmercarl.com/1005.K%E6%AC%A1%E5%8F%96%E5%8F%8D%E5%90%8E%E6%9C%80%E5%A4%A7%E5%8C%96%E7%9A%84%E6%95%B0%E7%BB%84%E5%92%8C.html
思路:想要得到最大數組和,我們就可以想到怎樣做呢?
一,盡可能保證負數最少
二,負數絕對值大的優先變正
三,正數絕對值小的優先變負,有零變零
本著這三條原則做,就能做出來。
那麼這道題體現了什麼貪心思想呢?
我感覺,前面那三條都是貪心中『貪』的體現
在負數中,局部最優就是:絕對值大的負數優先變正
在正數中,局部最優就是:絕對值小的正數變負,有零變零
得到的全局最優:數組和最大
8.加油站
https://programmercarl.com/0134.%E5%8A%A0%E6%B2%B9%E7%AB%99.html
思路:首先可以想到這道題是可以暴力解出來了,即分別以每個加油站為起點,得出可以跑一圈的加油站
那麼貪心思想做,該怎麼做呢,首先可以想到,如果以一個1點為起點當跑著跑著跑到3,油變為負數時,那麼說明以這個起點是不行的,但是以2或3為起點行不行呢?答案肯定是不行的,因為1跑到3,油變為負,說明1~3的gas=0的,所以可以得出,如果1~3油數變為負數,那麼由2~3油數肯定也為負數。
所以這里就可以得出,如果經過幾個加油站油數變為負了,那麼起點就更新為這一段路的下個加油站跑
局部最優:油量一旦為負,就從下個加油站重新跑
全局最優:得出可以跑一圈的加油站起點
9.分發糖果
https://programmercarl.com/0135.%E5%88%86%E5%8F%91%E7%B3%96%E6%9E%9C.html
思路:每個孩子至少一個,如果一個孩子比他旁邊的孩子優秀,就要比他旁邊的糖果多,這道題一旦兩邊都考慮很容易顧此失彼,所以我們就定義兩個循環,分別從左到右,從右到左去考慮,只要更優秀則比他旁邊的多1,如果已經多了就不用變了。
局部最優:保證優秀的孩子比他旁邊的孩子糖果多
全局最優:滿足題中條件,至少要發的糖果
10.檸檬水找零
https://programmercarl.com/0860.%E6%9F%A0%E6%AA%AC%E6%B0%B4%E6%89%BE%E9%9B%B6.html
思路:我們在找零時要遵守的規則一定是:
5 得5
10 得10減5
15 得15,優先減一個10減一個5 如果10塊沒有則減三個5
局部最優:以最少用的5塊的方式找零
全局最優:得到找零能否進行下去
Ⅶ DOA估計演算法
學號:20000300055
姓名:王鐸澎
嵌牛導讀:文章對DOA演算法進行了簡單的介紹。
嵌牛正文:https://blog.csdn.net/zhangziju/article/details/100730081?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160689878119725222413438%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=160689878119725222413438&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~_landing_v2~default-1-100730081.pc_first_rank_v2_rank_v28&utm_term=Musicsuanfa&spm=1018.2118.3001.4449
DOA估計演算法
DOA(Direction Of Arrival)波達方向定位技術主要有ARMA譜分析、最大似然法、熵譜分析法和特徵分解法,特徵分解法主要有MUSIC演算法、ESPRIT演算法WSF演算法等。
MUSIC (Multiple Signal Classification)演算法,即多信號分類演算法,由Schmidt等人於1979年提出。MUSIC演算法是一種基於子空間分解的演算法,它利用信號子空間和雜訊子空間的正交性,構建空間譜函數,通過譜峰搜索,估計信號的參數。對於聲源定位來說,需要估計信號的DOA。MUSIC演算法對DOA的估計有很高的解析度,且對麥克風陣列的形狀沒有特殊要求,因此應用十分廣泛。
運用矩陣的定義,可得到更為簡潔的表達式:
X = A S + N X=AS+NX=AS+N
式中
X = [ x 1 ( t ) , x 2 ( t ) , . . . x M ( t ) ] T X=[x_1(t),x_2(t),...x_M(t)]^TX=[x1(t),x2(t),...xM(t)]T,
S = [ S 1 ( t ) , S 2 ( t ) , . . . S D ( t ) ] T S=[S_1(t),S_2(t),...S_D(t)]^TS=[S1(t),S2(t),...SD(t)]T,
A = [ a ( θ 1 ) , a ( θ 2 ) , . . . a ( θ D ) ] T A=[a(\theta_1),a(\theta_2),...a(\theta_D)]^TA=[a(θ1),a(θ2),...a(θD)]T,
N = [ n 1 ( t ) , n 2 ( t ) , . . . n M ( t ) ] T N=[n_1(t),n_2(t),...n_M(t)]^TN=[n1(t),n2(t),...nM(t)]T。
X XX為陣元的輸出,A AA為方向響應向量,S SS是入射信號,N NN表示陣列雜訊。
其中 φ k = 2 π d λ s i n θ k \varphi_k=\frac{2\pi d}{\lambda}sin\theta_kφk=λ2πdsinθk有
A = [ a ( θ 1 ) , a ( θ 2 ) , . . . a ( θ D ) ] T = [ 1 1 ⋯ 1 e − j φ 1 e − j φ 2 ⋯ e − j φ D ⋮ ⋮ ⋱ ⋮ e − j ( M − 1 ) φ 1 e − j ( M − 1 ) φ 2 ⋯ e − j ( M − 1 ) φ D ] A=[a(\theta_1),a(\theta_2),...a(\theta_D)]^T=\left[
1e−jφ1⋮e−j(M−1)φ11e−jφ2⋮e−j(M−1)φ2⋯⋯⋱⋯1e−jφD⋮e−j(M−1)φD11⋯1e−jφ1e−jφ2⋯e−jφD⋮⋮⋱⋮e−j(M−1)φ1e−j(M−1)φ2⋯e−j(M−1)φD
\right]A=[a(θ1),a(θ2),...a(θD)]T=⎣⎢⎢⎢⎡1e−jφ1⋮e−j(M−1)φ11e−jφ2⋮e−j(M−1)φ2⋯⋯⋱⋯1e−jφD⋮e−j(M−1)φD⎦⎥⎥⎥⎤
對x m ( t ) x_m(t)xm(t)進行N點采樣,要處理的問題就變成了通過輸出信號x m ( t ) x_m(t)xm(t)的采樣{ x m ( i ) = 1 , 2 , . . . , M } \{ x_m (i)=1,2,...,M\}{xm(i)=1,2,...,M}估計信號源的波達方向角θ 1 , θ 2 . . . θ D \theta_1,\theta_2...\theta_Dθ1,θ2...θD,由此可以很自然的將陣列信號看作是雜訊干擾的若干空間諧波的疊加,從而將波達方向估計問題與譜估計聯系起來。
對陣列輸出X做相關處理,得到其協方差矩陣
R x = E [ X X H ] R_x=E[XX^H]Rx=E[XXH]
其中H HH表示矩陣的共軛轉置。
根據已假設信號與雜訊互不相關、雜訊為零均值白雜訊,因此可得到:
R x = E [ ( A S + N ) ( A S + N ) H ] = A E [ S S H ] A H + E [ N N H ] = A R S A H + R N R_x=E[(AS+N)(AS+N)^H] =AE[SS^H]A^H+E[NN^H]=AR_SA^H+R_NRx=E[(AS+N)(AS+N)H]=AE[SSH]AH+E[NNH]=ARSAH+RN
其中R s = E [ S S H ] R_s=E[SS^H]Rs=E[SSH]稱為信號相關矩陣
R N = σ 2 I R_N=\sigma^2IRN=σ2I是雜訊相關陣
σ 2 \sigma^2σ2是雜訊功率
I II是M × M M\times MM×M階的單位矩陣
在實際應用中通常無法直接得到R x R_xRx,能使用的只有樣本的協方差矩陣:
R x ^ = 1 N ∑ i = 1 N X ( i ) X H ( i ) \hat{R_x}=\frac{1}{N} \sum_{i=1}^{N}X(i)X^H (i)Rx^=N1∑i=1NX(i)XH(i),R x ^ \hat{R_x}Rx^是R x R_xRx的最大似然估計。
當采樣數N → ∞ N\to\inftyN→∞,他們是一致的,但實際情況將由於樣本數有限而造成誤差。根據矩陣特徵分解的理論,可對陣列協方差矩陣進行特徵分解,首先考慮理想情況,即無雜訊的情況:R x = A R s A H R_x=AR_sA^HRx=ARsAH,對均勻線陣,矩陣A由
A = [ a ( θ 1 ) , a ( θ 2 ) , . . . a ( θ D ) ] T = [ 1 1 ⋯ 1 e − j φ 1 e − j φ 2 ⋯ e − j φ D ⋮ ⋮ ⋱ ⋮ e − j ( M − 1 ) φ 1 e − j ( M − 1 ) φ 2 ⋯ e − j ( M − 1 ) φ D ] A=[a(\theta_1),a(\theta_2),...a(\theta_D)]^T=\left[
1e−jφ1⋮e−j(M−1)φ11e−jφ2⋮e−j(M−1)φ2⋯⋯⋱⋯1e−jφD⋮e−j(M−1)φD11⋯1e−jφ1e−jφ2⋯e−jφD⋮⋮⋱⋮e−j(M−1)φ1e−j(M−1)φ2⋯e−j(M−1)φD
\right]A=[a(θ1),a(θ2),...a(θD)]T=⎣⎢⎢⎢⎡1e−jφ1⋮e−j(M−1)φ11e−jφ2⋮e−j(M−1)φ2⋯⋯⋱⋯1e−jφD⋮e−j(M−1)φD⎦⎥⎥⎥⎤
所定義的范德蒙德矩陣,只要滿足θ i ≠ θ j , i ≠ j \theta_i\neq \theta_j,i\neq jθi=θj,i=j,則他的各列相互獨立。
若R s R_sRs為非奇異矩陣R a n k ( R s ) = D Rank(R_s)=DRank(Rs)=D,各信號源兩兩不相干,且M > D M>DM>D,則r a n d ( A R s A H ) = D rand(AR_sA^H)=Drand(ARsAH)=D,
由於R x = E [ X X H ] R_x=E[XX^H]Rx=E[XXH],有:
R s H = R x R_s^H=R_xRsH=Rx
即R s R_sRs為Hermite矩陣,它的特性是都是實數,又由於R s R_sRs為正定的,因此A R s A … … H AR_sA……HARsA……H為半正定的,它有D個正特徵值和M − D M-DM−D個零特徵值。
再考慮有雜訊存在的情況
R x = A R s A H + σ 2 I R_x=AR_sA^H+\sigma^2IRx=ARsAH+σ2I
由於σ 2 > 0 \sigma^2>0σ2>0,R x R_xRx為滿秩陣,所以R x R_xRx有M個正實特徵值λ 1 , λ 2 . . . λ M \lambda_1,\lambda_2...\lambda_Mλ1,λ2...λM
分別對應於M個特徵向量v 1 , v 2 . . . v M v_1,v_2...v_Mv1,v2...vM。又由於R x R_xRx為Hermite矩陣,所以各特徵向量是正交的,即:v i H v j = 0 , i ≠ j v_i^Hv_j=0,i\neq jviHvj=0,i=j與信號有關的特徵值只有D個,分別等於矩陣A R s A H AR_sA^HARsAH的各特徵值與σ 2 \sigma^2σ2之和,其餘M − D M-DM−D個特徵值為σ 2 \sigma^2σ2,即σ 2 \sigma^2σ2為R RR的最小特徵值,它是M − D M-DM−D維的,對應的特徵向量v i , i = 1 , 2 , . . . , M v_i,i=1,2,...,Mvi,i=1,2,...,M中,也有D個是與信號有關的,另外M − D M-DM−D個是與雜訊有關的,可利用特徵分解的性質求出信號源的波達方向θ k \theta_kθk。
MUSIC演算法的原理及實現
通過對協方差矩陣的特徵值分解,可得到如下結論:
將矩陣R x R_xRx的特徵值進行從小到大的排序,即λ 1 ≥ λ 2 ≥ . . . ≥ λ M > 0 \lambda_1 \geq \lambda_2\geq...\geq\lambda_M>0λ1≥λ2≥...≥λM>0,其中D個較大的特徵值對應於信號,M − D M-DM−D個較小的特徵值對應於雜訊。
矩陣R x R_xRx的屬於這些特徵值的特徵向量也分別對應於各個信號和雜訊,因此可把R x R_xRx的特徵值(特徵向量)劃分為信號特徵(特徵向量)與雜訊特徵(特徵向量)。
設λ i \lambda_iλi為R x R_xRx的第i ii個特徵值,v i v_ivi是與λ i \lambda_iλi個相對應的特徵向量,有:
R x v i = λ i v i R_xv_i=\lambda_iv_iRxvi=λivi
再設λ i = σ 2 \lambda_i=\sigma^2λi=σ2是R x R_xRx的最小特徵值R x v i = σ 2 v i i = D + 1 , D + 2... M R_xv_i=\sigma^2v_i i=D+1,D+2...MRxvi=σ2vii=D+1,D+2...M,
將R x = A R s A H + σ 2 I R_x=AR_sA^H+\sigma^2IRx=ARsAH+σ2I代入可得σ 2 v i = ( A R s A H + σ 2 I ) v i \sigma^2v_i=(AR_sA^H+\sigma^2I)v_iσ2vi=(ARsAH+σ2I)vi,
將其右邊展開與左邊比較得:
A R s A H v i = 0 AR_sA^Hv_i=0ARsAHvi=0
因A H A A^HAAHA是D ∗ D D*DD∗D維的滿秩矩陣,( A H A ) − 1 (A^HA)^{-1}(AHA)−1存在;
而R s − 1 R_s^{-1}Rs−1同樣存在,則上式兩邊同乘以R s − 1 ( A H A ) − 1 A H R_s^{-1}(A^HA)^{-1}A^HRs−1(AHA)−1AH,
有:
R s − 1 ( A H A ) − 1 A H A R s A H v i = 0 R_s^{-1}(A^HA)^{-1}A^HAR_sA^Hv_i=0Rs−1(AHA)−1AHARsAHvi=0
於是有
A H v i = 0 , i = D + 1 , D + 2 , . . . , M A^Hv_i=0,i=D+1,D+2,...,MAHvi=0,i=D+1,D+2,...,M
上式表明:雜訊特徵值所對應的特徵向量(稱為雜訊特徵向量)v i v_ivi,與矩陣A AA的列向量正交,而A AA的各列是與信號源的方向相對應的,這就是利用雜訊特徵向量求解信號源方向的出發點。
用各雜訊特徵向量為例,構造一個雜訊矩陣E n E_nEn:
E n = [ v D + 1 , v D + 2 , . . . v M ] E_n=[v_{D+1},v_{D+2},...v_{M}]En=[vD+1,vD+2,...vM]
定義空間譜P m u ( θ ) P_{mu}(\theta)Pmu(θ):
P m u ( θ ) = 1 a H ( θ ) E n E n H a ( θ ) = 1 ∥ E n H a ( θ ) ∥ 2 P_{mu}(\theta)=\frac{1}{{a^H}(\theta)}E_nE_n^Ha(\theta)=\frac{1}{\Vert E_n^Ha(\theta)\Vert^2}Pmu(θ)=aH(θ)1EnEnHa(θ)=∥EnHa(θ)∥21
該式中分母是信號向量和雜訊矩陣的內積,當a ( θ ) a(\theta)a(θ)和E n E_nEn的各列正交時,該分母為零,但由於雜訊的存在,它實際上為一最小值,因此P m u ( θ ) P_{mu}(\theta)Pmu(θ)有一尖峰值,由該式,使θ \thetaθ變化,通過尋找波峰來估計到達角。
MUSIC演算法實現的步驟
1.根據N個接收信號矢量得到下面協方差矩陣的估計值:
R x = 1 N ∑ i = 1 N X ( i ) X H ( i ) R_x=\frac{1}{N} \sum_{i=1}^NX(i)X^H(i)Rx=N1∑i=1NX(i)XH(i)
對上面得到的協方差矩陣進行特徵分解
R x = A R s A H + σ 2 I R_x=AR_sA^H+\sigma^2IRx=ARsAH+σ2I
2.按特徵值的大小排序 將與信號個數D DD相等的特徵值和對應的特徵向量看做信號部分空間,將剩下的M − D M-DM−D個特徵值和特徵向量看做雜訊部分空間,得到雜訊矩陣E n E_nEn:
A H v i = 0 , i = D + 1 , D + 2 , . . . , M A^Hv_i=0,i=D+1,D+2,...,MAHvi=0,i=D+1,D+2,...,M
E n = [ v D + 1 , v D + 2 , . . . v M ] E_n=[v_{D+1},v_{D+2},...v_{M}]En=[vD+1,vD+2,...vM]
3.使θ \thetaθ變化 ,按照式
P m u ( θ ) = 1 a H ( θ ) E n E n H a ( θ ) P_{mu}(\theta)=\frac{1}{{a^H}(\theta)E_nE_n^Ha(\theta)}Pmu(θ)=aH(θ)EnEnHa(θ)1
來計算譜函數,通過尋求峰值來得到波達方向的估計值。
clear; close all;
%%%%%%%% MUSIC for Uniform Linear Array%%%%%%%%
derad = pi/180; %角度->弧度
N = 8; % 陣元個數
M = 3; % 信源數目
theta = [-30 0 60]; % 待估計角度
snr = 10; % 信噪比
K = 512; % 快拍數
dd = 0.5; % 陣元間距
d=0:dd:(N-1)*dd;
A=exp(-1i*2*pi*d.'*sin(theta*derad)); %方向矢量
%%%%構建信號模型%%%%%
S=randn(M,K); %信源信號,入射信號
X=A*S; %構造接收信號
X1=awgn(X,snr,'measured'); %將白色高斯雜訊添加到信號中
% 計算協方差矩陣
Rxx=X1*X1'/K;
% 特徵值分解
[EV,D]=eig(Rxx); %特徵值分解
EVA=diag(D)'; %將特徵值矩陣對角線提取並轉為一行
[EVA,I]=sort(EVA); %將特徵值排序 從小到大
EV=fliplr(EV(:,I)); % 對應特徵矢量排序
% 遍歷每個角度,計算空間譜
for iang = 1:361
angle(iang)=(iang-181)/2;
phim=derad*angle(iang);
a=exp(-1i*2*pi*d*sin(phim)).';
En=EV(:,M+1:N); % 取矩陣的第M+1到N列組成雜訊子空間
Pmusic(iang)=1/(a'*En*En'*a);
end
Pmusic=abs(Pmusic);
Pmmax=max(Pmusic)
Pmusic=10*log10(Pmusic/Pmmax); % 歸一化處理
h=plot(angle,Pmusic);
set(h,'Linewidth',2);
xlabel('入射角/(degree)');
ylabel('空間譜/(dB)');
set(gca, 'XTick',[-90:30:90]);
grid on;
實現結果
Ⅷ 我要提問急求數學建模優秀論文
建模論文建模論文寫作指導
(一)、建模論文的標准組成部分
建模論文作為一種研究性學習有意義的嘗試,可以鍛煉學生發現問題、解決問題的能力.一般來說,建模論文的標准組成部分由論文的標題、摘要、正文、結論、參考文獻等部分組成.現就每個部分做個簡要的說明.
1. 題目
題目是給評委的第一印象,所以論文的題目一定要避免指代不清,表達不明的現象.建議將論文所涉及的模型或所用的計算方式寫入題目.如「用概率方法計算商場打折與返券的實惠效應」.
2. 摘要
摘要是論文中重要的組成部分.摘要應該使用簡練的語言敘述論文的核心觀點和主要思想.如果你有一些創新的地方,一定要在摘要中說明.進一步,必須把一些數值的結果放在摘要裡面,例如:「我們的最終計算得出,對於消費者來說,打折比返券的實惠率提高了23%.」摘要應該最後書寫.在論文的其他部分還沒有完成之前,你不應該書寫摘要.因為摘要是論文的主旨和核心內容的集中體現,只有將論文全部完成且把論文的體系羅列清楚後,才可寫摘要.
摘要一般分三個部分.用三句話表述整篇論文的中心.
第一句,用什麼模型,解決什麼問題.
第二句,通過怎樣的思路來解決問題.
第三句,最後結果怎麼樣.
當然,對於低年級的同學,也可以不寫摘要.
3. 正文
正文是論文的核心,也是最重要的組成部分.在論文的寫作中,正文應該是從「提出問題—分析問題—選擇模型—建立模型—得出結論」的方式來逐漸進行的.其中,提出問題、分析問題應該是清晰簡短.而選擇模型和建立模型應該是目標明確、數據詳實、公式合理、計算精確.在正文寫作中,應盡量不要用單純的文字表述,盡量多地結合圖表和數據,盡量多地使用科學語言,這會使得論文的層次上升.
4. 結論
論文的結論集中表現了這篇論文的成果,可以說,只有論文的結論經得起推敲,論文才可以獲得比較高的評價.結論的書寫應該注意用詞准確,與正文所描述或論證的現象或數據保持絕對的統一.並且一定要對結論進行自我點評,最好是能將結論推廣到社會實踐中去檢驗.
5. 參考資料
在論文中,如果使用了其他人的資料.必須在論文後標明引用文章的作者、應用來源等信息.
以下是我找的兩篇獲獎論文
房貸應該怎麼還才合理
摘要及關鍵詞:
本論文主要討論了怎樣還房貸才合理。
關鍵詞: 房貸 本金 利率 等額本金 等額本息
一.問題的提出
隨著經濟的發展,金融正越來越多的進入普通人的生活;貸款,保險,養老金和信用卡;個人住房抵押貸款是其中重要的一項。
當今社會中,熱度最高的話題當屬「買房子」。而北京目前房價都在3、4萬一平米左右,使人們不得不選擇進行貸款。而去銀行貸款其實也是一門學問,究竟應該怎樣還房貸才合適呢?
下面數據為最近公布的銀行貸款利率
短期貸款:
中長期貸款:
六個月以內(含六個月):5.60
一至三年(含三年)6.10
六個月至一年(含一年)6.06
三年至五年(含五年)6.45
五年以上6.60
二.模型的假設
1.銀行在貸款期利率不變
2.在這段期間內不考慮經濟波動的影響
3.客戶在還款期內還款能力不變,而且不提前還款
三.模型建立
符號規定
A : 客戶向銀行貸款的本金
B : 客戶平均每期應還的本金
C : 客戶應向銀行還款的總額
D : 客戶的利息負擔總和
α: 客戶向銀行貸款的月利率
β: 客戶向銀行貸款的年利率
m : 貸款期
n : 客戶總的還款期數
根據我們的日常生活常識,我們可以得到下面的關系:
(1) (2) (3)
兩種比較常見的還款方式
(1)等額本息還款
把按揭貸款的本金總額與利息總額相加,然後平均分攤到還款期限的每個月中。作為還款人,每個月還給銀行固定金額。
(2)等額本金還款
又稱利隨本清、等本不等息還款法。貸款人將本金分攤到每個月內,同時付清上一交易日至本次還款日之間的利息。
等額本息還款模型
(1)貸款期在1年以上:
先假設銀行貸給客戶的本金是在某個月的1號一次到位的. 客戶的合同里規定說,在本金到位後的下個月1號開始還錢,且設在還款期內年利率不變.
因為一年的年利率是β,那麼,平均到一個月就是(β/12),也就是月利率α,
即有關系式:
設每月均還款總額是x(元)
(i=1…n)是客戶在第i期1號還款前還欠銀行的金額
(i=1…n) 是客戶在第i期1號還錢後欠銀行的金額.
根據上面的分析,有
第1期還款前欠銀行的金額:
第1期還款後欠銀行的金額:
……
第i期還款前欠銀行的金額:
第i期還款後欠銀行的金額:
……
第n期還款前欠銀行的金額:
第n期還款後欠銀行的金額:
因為第n期還款後,客戶欠銀行的金額就還清. 也就是說:
,
即:
解方程得:
這就是月均還款總額的公式.
因此,客戶總的還款總額就等於:
利息負擔總和等於:
等額本金還款模型
假設貸款期在1年以上.
設客戶第i期應付的金額為 (i=1…n) (單位:元)
因此,客戶第一期應付的金額為 :
第二期應付的金額為 :
那麼,客戶第n期應付的金額為 :
累計應付的還款總額為 :
利息負擔總和為 :
四.模型求解
某一個人從銀行貸款100萬元,貸款期限為五年,即分60次還款,貸款利率為6.45,每次還款金額見下表:
等額本息還款 元 等額本金還款
第一次 19542.7 21952.41
第二次 19542.7 21862.83
第三次 19542.7 21773.24
第四次 19542.7 21683.66
第五次 19542.7 21594.07
第十次 19542.7 21146.15
第二十次 19542.7 20250.30
第三十次 19542.7 19354.45
第四十次 19542.7 18458.6
第五十次 19542.7 17562.7
第六十次 19542.7 16666.89
總還款金額 117 116萬
貸款二十年
等額本息還款 等額本金還款
第一次 7514.72 9643.75
第二次 7514.72 9620.84
第三次 7514.72 9597.92
第四次 7514.72 9575
第五次 7514.72 9552.09
第十次 7514.72 9543.5
第20次 7514.72 9208.34
第50次 7514.72 8520.84
第80次 7514.72 7833.34
第100次 7514.72 7375
第150次 7514.72 6229.17
第180次 7514.72 5541.67
第200次 7514.72 5083.33
第210次 7514.72 4854.17
第220次 7514.72 4625
第230次 7514.72 4395.83
第240次 7514.72 4166.67
總還款 180萬 166萬
貸款三十年
等額本息還款 等額本金還款
第一次 6386.59 8262.5
第二次 6386.59 8247.22
第三次 6386.59 8231.95
第四次 6386.59 8216.67
第五次 6386.59 8201.39
第十次 6386.59 8125
第二十次 6386.59 7972.22
第五十次 6386.59 7513.89
第一百次 6386.59 6750
第一百五十次 6386.59 5986.11
第二百次 6386.59 5222.22
第二百五十次 6386.59 4458.33
第三百次 6386.59 3694.44
第三百一十次 6386.59 3541.67
第三百二十次 6386.59 3388.89
第三百三十次 6386.59 3236.11
第三百四十次 6386.59 3083.33
第三百五十次 6386.59 2939.55
第三百六十次 6386.59 2777.78
總還款 229萬 199萬
五.模型分析
等額本金還款:適合目前收入較高的人群。借款人在開始還貸時,每月負擔比等額本息要重。隨著時間推移,還款負擔便會逐漸減輕。這種還款方式相對同樣期限的等額本息法,總的利息支出較低。
等額本息還款法的特點是每個月歸還一樣的本息和,容易作出預算。還款初期利息占每月供款的大部分,隨本金逐漸返還供款中本金比重增加。等額本息還款法更適用於現期收入少,預期收入將穩定或增加的借款人,或預算清晰的人士和收入穩定的人士。
六.模型應用
該模型可在實踐中應用,每一個貸款買房者可應用這個模型,並根據自己的條件和承受能力,對各種貸款方案進行優選。
ETC收費與停車收費成本比較
現在面對嚴重的高速公路堵車問題,我們真的手足無措嗎?幾年前,速通公司推出了ETC不停車收費系統,這本應該能很大程度上緩解高速公路收費站擁堵的情況,但實際效果卻並不理想。我們覺得 主要原因是ETC成本太高,一台機器要450元錢,於是很多人寧可花時間在路上等。
其實,如果我們仔細算一下成本,便會對這個問題有更新的認識。
我們的幾個平均參數:車重m=1.4t,輪胎與地面摩擦系數u=0.17,
汽油熱值q= J/kg,93汽油價格7.85元/升(10.68元/千克),發動機空轉功率p= 17 kw ,熱效率為23%。
一般汽車在出高速時,車道一般有幾輛車在排隊,我們平均為5輛。每輛車交費時間平均為10s。這樣每輛車在收費時啟動制動5次,等待50秒。每次啟動速度由0到10mph,啟動距離為5米。
由此我們推算;
1啟動時耗油,設為 ,由能量守恆得到等式 ,代入數據後得到 =7.7g。
2 等待10秒時油耗, = = 16.1g
所以每次汽車出高速要消耗 =119g 汽油,約合1.3元。如果按每周走一次高速算,一年52次就是67.6元,6年下來花在高速收費站毫無意義的油錢就是473.2元,而這錢已經夠買一台ETM機了。除去油錢,每次交費時斷斷續續的啟動和剎車,也會對發動機和剎車片造成不小的損耗,增加額外的維修費用。還有很重要的一點是浪費的時間,每次平均要50秒,如果遇上高峰期,幾公里長的車隊幾米幾米的向前動,耽誤的時間就更別提了。所以綜合以上因素考慮,如果汽車在六年內經常走高速的話,使用ETC的成本是要低於停車收費的。
從車主的角度考慮,汽車配備了ETC機,可以在不太高的車速下完成交費。既省下了頻繁啟動和等待浪費的油錢,也減少了對發動機剎車片的磨損,還省下了很多時間。
從路政部門的角度考慮,如果停車收費,需要在收費站投入大量的紙張、油墨和計算機處理系統並安排相應的工作人員,收上的錢還需要匯總轉移一次才能存入銀行,既耗材又麻煩。如果使用ETC系統,就可以無紙化收費,無需工作人員進行處理,車主交的錢可以直接與賬戶掛鉤,省下了很多步驟。所以從這些方面考慮,ETC系統可以降低路政部門在收費站投入的成本。
從環境的角度考慮,汽車在剎車和等待時會排放大量的尾氣,達正常行駛時的幾倍,尤其是在高峰期收費站擁堵時,幾百兩幾千兩汽車堵在幾公里路上,尾氣的排量和密度是大的驚人的。使用ETC系統可以很有效地緩解收費站擁堵的情況,從而減輕汽車尾氣對收費站周圍環境的影響。
綜合以上因素,無論從車主成本、路政部門還是環境角度考慮,使用ETC系統都會起到很大的積極作用。我們在ETC系統的購買上還有兩個建議,就是路政部門是不是也可以幫車主分擔些費用,因為這對雙方都有利;或許政府還可以出台相關政策,在汽車出廠時就配備ETC機,把這筆錢算在購車成本里,並給予相應補貼之類的。
總之越多的車輛配備了ETC機,高速收費站就會越暢通
望樓主採納。。。。。。。。。。。。。。。。。。。。。很辛苦的。。
Ⅸ 如何理解c/c++和php語言的區別
一、編程語言
1.根據熟悉的語言,談談兩種語言的區別?
主要淺談下C/C++和PHP語言的區別:
1)PHP弱類型語言,一種腳本語言,對數據的類型不要求過多,較多的應用於Web應用開發,現在好多互聯網開發公司的主流web後台開發語言,主要框架為mvc模型,如smarty,yaf,升級的PHP7速度較快,對伺服器的壓力要小很多,在新浪微博已經有應用,對比很明顯。
2)C/C++開發語言,C語言更偏向硬體底層開發,C++語言是目前為止我認為語法內容最多的一種語言。C/C++在執行速度上要快很多,畢竟其他類型的語言大都是C開發的,更多應用於網路編程和嵌入式編程。
2.volatile是幹啥用的,(必須將cpu的寄存器緩存機制回答得很透徹),使用實例有哪些?(重點)
1) 訪問寄存器比訪問內存單元要快,編譯器會優化減少內存的讀取,可能會讀臟數據。聲明變數為volatile,編譯器不再對訪問該變數的代碼優化,仍然從內存讀取,使訪問穩定。
總結:volatile關鍵詞影響編譯器編譯的結果,用volatile聲明的變數表示該變數隨時可能發生變化,與該變數有關的運算,不再編譯優化,以免出錯。
2)使用實例如下( 區分C程序員和嵌入式系統程序員的最基本的問題。 ):
並行設備的硬體寄存器(如:狀態寄存器)
一個中斷服務子程序中會訪問到的非自動變數(Non-automatic variables)
多線程應用中被幾個任務共享的變數
3)一個參數既可以是const還可以是volatile嗎?解釋為什麼。
可以。一個例子是只讀的狀態寄存器。它是volatile因為它可能被意想不到地改變。它是const因為程序不應該試圖去修改它。
4)一個指針可以是volatile 嗎?解釋為什麼。
可以。盡管這並不是很常見。一個例子當中斷服務子程序修改一個指向一個buffer的指針時。
下面的函數有什麼錯誤:
int square(volatile int *ptr) {
return *ptr * *ptr;
}
下面是答案:
這段代碼有點變態。這段代碼的目的是用來返指針*ptr指向值的平方,但是,由於*ptr指向一個volatile型參數,編譯器將產生類似下面的代碼:
int square(volatile int *ptr){
int a,b;
a = *ptr;
b = *ptr;
return a * b;
}
由於*ptr的值可能被意想不到地改變,因此a和b可能是不同的。結果,這段代碼可能並不是你所期望的平方值!正確的代碼如下:
long square(volatile int *ptr){
int a;
a = *ptr;
return a * a;
}
更多linux內核視頻教程文本資料免費獲取後台私信【 內核 】。
3.static const等等的用法,(能說出越多越好)(重點)
² 首先說說const的用法(絕對不能說是常數)
1)在定義的時候必須進行初始化
2)指針可以是const 指針,也可以是指向const對象的指針
3)定義為const的形參,即在函數內部是不能被修改的
4)類的成員函數可以被聲明為正常成員函數,不能修改類的成員變數
5)類的成員函數可以返回的是常對象,即被const聲明的對象
6)類的成員變數是指成員變數不能在聲明時初始化,必須在構造函數的列表裡進行初始化
(註:千萬不要說const是個常數,會被認為是外行人的!!!!哪怕說個只讀也行)
下面的聲明都是什麼意思?
const int a; a是一個正常整型數
int const a; a是一個正常整型數
const int *a; a是一個指向常整型數的指針,整型數是不可修改的,但指針可以
int * const a; a為指向整型數的常指針,指針指向的整型數可以修改,但指針是不可修改的
int const * a const; a是一個指向常整型數的常指針,指針指向的整型數是不可修改的,同時指針也是不可修改的
通過給優化器一些附加的信息,使用關鍵字const也許能產生更緊湊的代碼。合理地使用關鍵字const可以使編譯器很自然地保護那些不希望被改變的參數,防止其被無意的代碼修改。簡而言之,這樣可以減少bug的出現。
Const如何做到只讀?
這些在編譯期間完成,對於內置類型,如int, 編譯器可能使用常數直接替換掉對此變數的引用。而對於結構體不一定。
² 再說說static的用法(三個明顯的作用一定要答出來)
1)在函數體內,一個被聲明為靜態的變數在這一函數被調用過程中維持其值不變。
2)在模塊內(但在函數體外),一個被聲明為靜態的變數可以被模塊內所用函數訪問,但不能被模塊外其它函數訪問。它是一個本地的全局變數。
3)在模塊內,一個被聲明為靜態的函數只可被這一模塊內的其它函數調用。那就是,這個函數被限制在聲明它的模塊的本地范圍內使用
4)類內的static成員變數屬於整個類所擁有,不能在類內進行定義,只能在類的作用域內進行定義
5)類內的static成員函數屬於整個類所擁有,不能包含this指針,只能調用static成員函數
static全局變數與普通的全局變數有什麼區別?static局部變數和普通局部變數有什麼區別?static函數與普通函數有什麼區別?
static全局變數與普通的全局變數有什麼區別:static全局變數只初始化一次,防止在其他文件單元中被引用;
static局部變數和普通局部變數有什麼區別:static局部變數只被初始化一次,下一次依據上一次結果值;
static函數與普通函數有什麼區別:static函數在內存中只有一份,普通函數在每個被調用中維持一份拷貝
4.extern c 作用
告訴編譯器該段代碼以C語言進行編譯。
5.指針和引用的區別
1)引用是直接訪問,指針是間接訪問。
2)引用是變數的別名,本身不單獨分配自己的內存空間,而指針有自己的內存空間
3)引用綁定內存空間(必須賦初值),是一個變數別名不能更改綁定,可以改變對象的值。
總的來說:引用既具有指針的效率,又具有變數使用的方便性和直觀性
6. 關於靜態內存分配和動態內存分配的區別及過程
1) 靜態內存分配是在編譯時完成的,不佔用CPU資源;動態分配內存運行時完成,分配與釋放需要佔用CPU資源;
2)靜態內存分配是在棧上分配的,動態內存是堆上分配的;
3)動態內存分配需要指針或引用數據類型的支持,而靜態內存分配不需要;
4)靜態內存分配是按計劃分配,在編譯前確定內存塊的大小,動態內存分配運行時按需分配。
5)靜態分配內存是把內存的控制權交給了編譯器,動態內存把內存的控制權交給了程序員;
6)靜態分配內存的運行效率要比動態分配內存的效率要高,因為動態內存分配與釋放需要額外的開銷;動態內存管理水平嚴重依賴於程序員的水平,處理不當容易造成內存泄漏。
7. 頭文件中的 ifndef/define/endif 干什麼用 ?
預處理,防止頭文件被重復使用,包括pragma once都是這樣的
8. 宏定義求兩個元素的最小值
#define MIN(A,B) ((A) next;
}
else
{
return NULL;
}
}
Node* pFind = pHead;
while (pCurrent) {
pFind = pFind->next;
pCurrent = pCurrent->next;
}
return pFind;
}
2. 給定一個單向鏈表(長度未知),請遍歷一次就找到中間的指針,假設該鏈表存儲在只讀存儲器,不能被修改
設置兩個指針,一個每次移動兩個位置,一個每次移動一個位置,當第一個指針到達尾節點時,第二個指針就達到了中間節點的位置
處理鏈表問題時,」快行指針「是一種很常見的技巧,快行指針指的是同時用兩個指針來迭代訪問鏈表,只不過其中一個比另一個超前一些。快指針往往先行幾步,或與慢指針相差固定的步數。
node *create() {
node *p1, *p2, *head;
int cycle = 1, x;
head = (node*)malloc(sizeof(node));
p1 = head;
while (cycle)
{
cout > x;
if (x != 0)
{
p2 = (node*)malloc(sizeof(node));
p2->data = x;
p1->next = p2;
p1 = p2;
}
else
{
cycle = 0;
}
}
head = head->next;
p1->next = NULL;
return head;
}
void findmid(node* head) {
node *p1, *p2, *mid;
p1 = head;
p2 = head;
while (p1->next->next != NULL)
{
p1 = p1->next->next;
p2 = p2->next;
mid = p2;
}
}
3. 將一個數組生成二叉排序樹
排序,選數組中間的一個元素作為根節點,左邊的元素構造左子樹,右邊的節點構造有子樹。
4. 查找數組中第k大的數字?
因為快排每次將數組劃分為兩組加一個樞紐元素,每一趟劃分你只需要將k與樞紐元素的下標進行比較,如果比樞紐元素下標大就從右邊的子數組中找,如果比樞紐元素下標小從左邊的子數組中找,如果一樣則就是樞紐元素,找到,如果需要從左邊或者右邊的子數組中再查找的話,只需要遞歸一邊查找即可,無需像快排一樣兩邊都需要遞歸,所以復雜度必然降低。
最差情況如下:假設快排每次都平均劃分,但是都不在樞紐元素上找到第k大第一趟快排沒找到,時間復雜度為O(n),第二趟也沒找到,時間復雜度為O(n/2),第k趟找到,時間復雜度為O(n/2k),所以總的時間復雜度為O(n(1+1/2+....+1/2k))=O(n),明顯比冒泡快,雖然遞歸深度是一樣的,但是每一趟時間復雜度降低。
5. 紅黑樹的定義和解釋?B樹的基本性質?
紅黑樹:
性質1. 節點是紅色或黑色。
性質2. 根節點是黑色。
性質3. 每個葉子結點都帶有兩個空的黑色結點(被稱為黑哨兵),如果一個結點n的只有一個左孩子,那麼n的右孩子是一個黑哨兵;如果結點n只有一個右孩子,那麼n的左孩子是一個黑哨兵。
性質4 每個紅色節點的兩個子節點都是黑色。(從每個葉子到根的所有路徑上不能有兩個連續的紅色節點)
性質5. 從任一節點到其每個葉子的所有路徑都包含相同數目的黑色節點。
B樹:
1.所有非葉子結點至多擁有兩個兒子(Left和Right);
2.所有結點存儲一個關鍵字;
3.非葉子結點的左指針指向小於其關鍵字的子樹,右指針指向大於其關鍵字的子樹;
6. 常見的加密演算法?
對稱式加密就是加密和解密使用同一個密鑰。
非對稱式加密就是加密和解密所使用的不是同一個密鑰,通常有兩個密鑰,稱為「公鑰」和「私鑰」,它們兩個必需配對使用。
DES:對稱演算法,數據加密標准,速度較快,適用於加密大量數據的場合;
MD5的典型應用是對一段Message產生fingerprint(指紋),以防止被「篡改」。
RSA是第一個既能用於數據加密也能用於數字簽名的演算法。
7. https?
HTTP下加入SSL層,HTTPS的安全基礎是SSL。
8.有一個IP庫,給你一個IP,如何能夠快速的從中查找到對應的IP段?不用資料庫如何實現?要求省空間
9.簡述一致性hash演算法。
1)首先求memcached伺服器(節點)的哈希值,並將其配置到0 232的圓(continuum)。
2)然後採用同樣的方法求出存儲數據的鍵的哈希值,並映射到相同的圓上。
3)然後從數據映射到的位置開始順時針查找,將數據保存到找到的第一個伺服器上。如果超過232仍然找不到伺服器,就會保存到第一台memcached伺服器上。
11.描述一種hash table的實現方法
1) 除法散列法: p ,令 h(k ) = k mod p ,這里, p 如果選取的是比較大的素數,效果比較好。而且此法非常容易實現,因此是最常用的方法。最直觀的一種,上圖使用的就是這種散列法,公式: index = value % 16,求模數其實是通過一個除法運算得到的。
2) 平方散列法 :求index頻繁的操作,而乘法的運算要比除法來得省時。公式: index = (value * value) >> 28 (右移,除以2^28。記法:左移變大,是乘。右移變小,是除)
3) 數字選擇法:如果關鍵字的位數比較多,超過長整型範圍而無法直接運算,可以選擇其中數字分布比較均勻的若干位,所組成的新的值作為關鍵字或者直接作為函數值。
4) 斐波那契(Fibonacci)散列法:平方散列法的缺點是顯而易見的,通過找到一個理想的乘數index = (value * 2654435769) >> 28
沖突處理:令數組元素個數為 S ,則當 h(k) 已經存儲了元素的時候,依次探查 (h(k)+i) mod S , i=1,2,3…… ,直到找到空的存儲單元為止(或者從頭到尾掃描一圈仍未發現空單元,這就是哈希表已經滿了,發生了錯誤。當然這是可以通過擴大數組范圍避免的)。
12、各類樹結構的實現和應用
13、hash,任何一個技術面試官必問(例如為什麼一般hashtable的桶數會取一個素數?如何有效避免hash結果值的碰撞)
不選素數的話可能會造成hash出值的范圍和原定義的不一致
14.什麼是平衡二叉樹?
左右子樹都是平衡二叉樹,而且左右子樹的深度差值的約對值不大於1。
15.數組和鏈表的優缺點
數組,在內存上給出了連續的空間。鏈表,內存地址上可以是不連續的,每個鏈表的節點包括原來的內存和下一個節點的信息(單向的一個,雙向鏈表的話,會有兩個)。
數組優於鏈表的:
A. 內存空間佔用的少。
B. 數組內的數據可隨機訪問,但鏈表不具備隨機訪問性。
C. 查找速度快
鏈表優於數組的:
A. 插入與刪除的操作方便。
B. 內存地址的利用率方面鏈表好。
C. 方便內存地址擴展。
17.最小堆插入,刪除編程實現
18. 4G的long型整數中找到一個最大的,如何做?
每次從磁碟上盡量多讀一些數到內存區,然後處理完之後再讀入一批。減少IO次數,自然能夠提高效率。分批讀入選取最大數,再對緩存的最大數進行快排。
19. 有千萬個string在內存怎麼高速查找,插入和刪除?
對千萬個string做hash,可以實現高速查找,找到了,插入和刪除就很方便了。關鍵是如何做hash,對string做hash,要減少碰撞頻率。
在內存中維護一個大小為10000的最小堆,每次從文件讀一個數,與最小堆的堆頂元素比較,若比堆頂元素大,則替換掉堆頂元素,然後調整堆。最後剩下的堆內元素即為最大的1萬個數,演算法復雜度為O(NlogN)
(1)全局洗牌法
a)首先生成一個數組,大小為54,初始化為1~54
b)按照索引1到54,逐步對每一張索引牌進行洗牌,首先生成一個余數 value = rand %54,那麼我們的索引牌就和這個余數牌進行交換處理
c)等多索引到54結束後,一副牌就洗好了
(2)局部洗牌法:索引牌從1開始,到54結束。這一次索引牌只和剩下還沒有洗的牌進行交換, value = index + rand() %(54 - index)
演算法復雜度是O(n)
22.請分別用遞歸和非遞歸方法,先序遍歷二叉樹
24.其他各種排序方法
25.哈希表沖突解決方法?
常見的hash演算法如下:
解決沖突的方法:
也叫散列法,主要思想是當出現沖突的時候,以關鍵字的結果值作為key值輸入,再進行處理,依次直到沖突解決
線性地址再散列法
當沖突發生時,找到一個空的單元或者全表
二次探測再散列
沖突發生時,在表的左右兩側做跳躍式的探測
偽隨機探測再散列
同時構造不同的哈希函數
將同樣的哈希地址構造成一個同義詞的鏈表
建立一個基本表和溢出區,凡是和基本元素發生沖突都填入溢出區
六、系統架構
1.設計一個服務,提供遞增的SessionID服務,要求保證服務的高可靠性,有哪些方案?集中式/非集中式/分布式
2.多台伺服器要執行計劃任務,但只有拿到鎖的任務才能執行,有一個中心伺服器來負責分配鎖,但要保證服務的高可靠性。
3.如何有效的判斷伺服器是否存活?伺服器是否踢出集群的決策如何產生?
4.兩個伺服器如何在同一時刻獲取同一數據的時候保證只有一個伺服器能訪問到數據?
可以採用隊列進行處理,寫一個隊列介面保證同一時間只有一個進程能夠訪問到數據,或者對於存取資料庫的來說,資料庫也是可以加鎖處理的
5. 編寫高效伺服器程序,需要考慮的因素
性能對伺服器程序來說是至關重要的了,畢竟每個客戶都期望自己的請求能夠快速的得到響應並處理。那麼影響伺服器性能的首要因素應該是:
(1)系統的硬體資源,比如說CPU個數,速度,內存大小等。不過由於硬體技術的飛速發展,現代伺服器都不缺乏硬體資源。因此,需要考慮的主要問題是如何從「軟環境」來提升伺服器的性能。
伺服器的」軟環境「
(2)一方面是指系統的軟體資源,比如操作系統允許用戶打開的最大文件描述符數量
(3)另一方面指的就是伺服器程序本身,即如何從編程的角度來確保伺服器的性能。
主要就要考慮大量並發的處理這涉及到使用進程池或線程池實現高效的並發模式(半同步/半非同步和領導者/追隨者模式),以及高效的邏輯處理方式--有限狀態機內存的規劃使用比如使用內存池,以空間換時間,被事先創建好,避免動態分配,減少了伺服器對內核的訪問頻率,數據的復制,伺服器程序還應該避免不必要的數據復制,尤其是當數據復制發生在用戶空間和內核空間之間時。如果內核可以直接處理從socket或者文件讀入的數據,則應用程序就沒必要將這些數據從內核緩沖區拷貝到應用程序緩沖區中。這里所謂的「直接處理」,是指應用程序不關心這些數據的具體內容是什麼,不需要對它們作任何分析。比如說ftp伺服器,當客戶請求一個文件時,伺服器只需要檢測目標文件是否存在,以及是否有許可權讀取就可以了,不需要知道這個文件的具體內容,這樣的話ftp伺服器就不需要把目標文件讀入應用程序緩沖區然後調用send函數來發送,而是直接使用「零拷貝」函數sendfile直接將其發送給客戶端。另外,用戶代碼空間的數據賦值也應該盡可能的避免復制。當兩個工作進程之間需要傳遞大量的數據時,我們就應該考慮使用共享內存來在他們直接直接共享這些數據,而不是使用管道或者消息隊列來傳遞。上下文切換和鎖:並發程序必須考慮上下文的切換問題,即進程切換或線程切換所導致的系統開銷。即時I/O密集型伺服器也不應該使用過多的工作線程(或工作進程),否則進程間切換將佔用大量的CPU時間,伺服器真正處理業務邏輯的CPU時間比重就下降了。因此為每個客戶連接都創建一個工作線程是不可取的。應該使用某種高效的並發模式。(半同步半非同步或者說領導者追隨者模式)另一個問題就是共享資源的加鎖保護。鎖通常被認為是導致伺服器效率低下的一個因素,因為由他引入的代碼不僅不處理業務邏輯,而且需要訪問內核資源,因此如果伺服器有更好的解決方案,應該盡量避免使用鎖。或者說伺服器一定非要使用鎖的話,盡量使用細粒度的鎖,比如讀寫鎖,當工作線程都只讀一塊內存區域時,讀寫鎖不會增加系統開銷,而只有當需要寫時才真正需要鎖住這塊內存區域。對於高峰和低峰的伸縮處理,適度的緩存。
6. QQ飛車新用戶注冊時,如何判斷新注冊名字是否已存在?(數量級:幾億)
可以試下先將用戶名通過編碼方式轉換,如轉換64位整型。然後設置N個區間,每個區間為2^64/N的大小。對於新的用戶名,先通過2分尋找該用戶名屬於哪個區間,然後在在這個區間,做一個hash。對於不同的時間復雜度和內存要求可以設置不同N的大小~
加一些基礎的技術面試之外的職業素養的面試問題
1.你在工作中犯了個錯誤,有同事打你小報告,你如何處理?
a.同事之間應該培養和形成良好的同事關系,就是要互相支持而不是互相拆台,互相學習,互相幫助,共同進步。
b.如果小報告里邊的事情都是事實也就是說確實是本人做的不好不對的方面,那麼自己應該有則改之,提高自己。如果小報告里邊的事
情全部不是事實,就是說確實誣陷,那麼應該首先堅持日久見人心的態度,持之以恆的把本職工作做好,然後在必要的時候通過適當的
方式和領導溝通,相信領導會知道的。
2.你和同事合作完成一個任務,結果任務錯過了截止日期,你如何處理?
3.職業規劃?
4.離職原因?
5. 項目中遇到的難題,你是如何解決的?
A.時間 b要求 c.方法
Ⅹ 華為p30pro照相模糊怎麼回事
手機拍照模糊可能存在以下原因:
1.請您保持攝像頭和激光感測器不被遮擋:
如果手機後置攝像頭拍攝的照片或視頻模糊,可能是攝像頭鏡頭或激光感測器被異物遮擋。
覆蓋後置攝像頭的保護膜(含透明保護膜)可能會影響其性能,在弱光條件下拍攝時導致鏡頭耀斑、重影或模糊。
如果設備使用激光對焦、TOF感測器對焦、3D深度感測器測量拍攝距離,那麼保護膜、三方保護套或其他遮擋物可能會干擾感測器。導致相機將無法正確對焦,圖像模糊和不清晰。使用相機前,請撕下攝像頭保護膜(含透明保護膜),並用軟布清潔鏡頭和感測器,使用華為官方保護套。
備註:您可以在官網或我的華為APP搜索對應產品型號,查看對應規格參數>後置攝像頭參數。
2.請檢查相機是否可以正確對焦:
如果相機距離您拍攝對象太遠或太近,圖片和視頻可能會模糊。
請檢查相機是否可以正確對焦。例如:拍攝遠處照片時,輕觸取景框,聚焦在遠處的物體上。拍攝特寫鏡頭時,請將手機距離被拍攝物體至少10厘米,輕觸取景框對焦,不要使用變焦。如果取景框中的圖像在此過程中變得更清晰,則意味著設備的相機可以正確對焦。
如果相機可以正常對焦,但圖片和視頻仍然模糊不清楚,請在下面找到不同的場景和解決方案。
如果相機無法正常對焦,請您備份好您的重要數據,攜帶購機憑證前往華為客戶服務中心尋求進一步幫助。
3.請確認對焦完成後再拍攝:
建議您在拍照時用手指點擊拍攝主體手動對焦,並且在對焦框消失之前不要點擊快門按鈕,因為這表明相機仍未完成對焦。
如果您在拍攝視頻時點擊取景框,相機將鎖定焦距,以避免移動設備以更改場景或位置時圖像不清晰或不穩定。您可能需要再次觸摸取景框才能手動重新對焦相機。要讓相機自動對焦,請在拍攝視頻時避免觸摸取景框。
建議使用默認變焦倍數使用高倍變焦拍照時,手機將切換到數字變焦,相機對輕微的移動都會更敏感。因此,圖像可能會顯得模糊。建議降低變焦倍數或使用默認變焦倍數(取景框右側變焦
條上實心白點為默認變焦倍數)。
4.請您保持穩定拍攝:
如果您拍攝對象移動得很快,或者拍攝過程中手機不斷移動,相機將無法正常對焦,照片或視頻可能會模糊。建議您拍攝過程中請穩住手機,必要時使用三腳架。
如果您試圖捕捉移動物體,請按住快門按鈕拍攝連拍照片,然後選擇最佳照片。連拍僅在解析度設置為20 MP或更低時可用。
5.您可以適當移動拍攝距離:
由於景深較淺,某些手機相機在拍攝特寫照片時可能無法正確對焦。
使用大光圈鏡頭可以讓更多光線進入,但它們景深較淺。使用此類相機時,請確保拍攝的物體距離手機至少20厘米(8英寸),並且位於取景框的中心。
如果您的設備支持超級微距模式,在使用時請保持手機與拍攝對象距離在2.5-10厘米。
6.特殊相機模式拍攝技巧:
在夜間模式、流光快門模式下,相機拍攝曝光時間較長,因此相機或拍攝對象的任何移動都可能導致照片或視頻不清晰。拍攝過程中請保持手機穩定,必要時使用三腳架。
大光圈或人像模式會自動模糊背景,使被攝體脫穎而出。這種拍攝模式下的背景模糊屬於正常現象,請您放心使用即可。
如嘗試以上方法後仍未解決問題,請您備份好您的重要數據(QQ、微信等第三方應用需單獨備份),攜帶購機憑證前往華為客戶服務中心尋求進一步幫助。