WOLF, Thomas G. (748 Cuesta Drive, Mountain View, California, 94040, US)
What is clasmed is:
1. A method of determining an actual altitude of a mobile device, a preliminary altitude of the mobile device having been determined by an altimeter, the method comprising the steps of: providing at least one environmental sensor to the mobile device; determining whether the preliminary altitude is a result of an altitude change or an environ mentai change from an output from the at least one environmental sensor; and adjusting the preliminary altitude to the actual altitude based on the step of determining.
2. The method of claim 1 further comprising measuring a temperature and a movement of the mobile device.
3. The method of claim 2 wherein the step of measuring a movement comprises measuring a vertical movement.
4. The method of claim 1 wherein the step of providing at least one sensor comprises providing a motion sensor and a temperature sensor.
5. The method of claim 1 further comprising the step of storing data from the at least one sensor and the altimeter and determining a change in the sensor data over a predetermined period of time.
8. The method of claim 5 wherein the step of determining a change in the sensor data over a predetermined period of time comprises corresponding a temperature change to a rate of change of pressure.
7. The method of claim 5 wherein the step of determining a change in the sensor data over a predetermined period of time comprises corresponding a measured vertical movement to a rate of change of pressure.
8. The method of claim 5 further comprising the step of storing predetermined sensor data profiles.
9. A system for determining an actual altitude of a mobile device, a preliminary altitude having been measured by an altimeter, the system comprising: at least one environmental sensor disposed on the mobile device; a processor for comparing an output from the at least one environmental sensor to the preliminary altitude measurement; and said processor adjusting the preliminary altitude to the actual altitude.
10. The system of claim 9 wherein the at least one environmental sensor comprises at least one motion sensor.
11. The system of claim 9 wherein the at least one sensor comprises at least one member from the group consisting of an accelerometer, a gyroscope, a geomagnetic sensor, a motion sensor and a temperature sensor,
12. The system of claim 9 wherein the at least one sensor comprises a motion sensor and a temperature sensor.
13. The system of cSaim 9 further comprising a memory for storing altimeter data and sensor data.
14. A method of determining an actual altitude of a mobile device, a preliminary altitude of the mobile device having been determined by an altimeter, the method comprising the steps of: providing a temperature sensor and a motion sensor to the mobile device; detecting a change in pressure by the pressure sensor; detecting a change in movement by the motion sensor; detecting a change in temperature by the temperature sensor; determining whether the preliminary altitude is a resuit of an altitude change or an environmental change from the detected change of the motion sensor and temperature sensor; and adjusting the preliminary attitude to the actual aititude based on the step of determining.
15. The method of ciaim 14 wherein the step of detecting a change in movement comprises measuring a vertical movement.
16. The method of ciaim 14 further comprising the step of storing data from the motion sensor, the temperature sensor and the pressure sensor and determining a change in sensor data over a predetermined period of time.
17. The method of claim 16 wherein the step of determining a change in the sensor data over a predetermined period of time comprises corresponding a temperature change to a rate of change of pressure.
18. The method of claim 16 wherein the step of determining a change in the sensor data over a predetermined period of time comprises corresponding a measured vertical movement to a rate of change of pressure.
19, The method of cSaim 14 further comprising the step of comparing the detected change in pressure, detected change in movement and detected change in temperature to stored profiles.
20. A computer program product, comprising: computer readable medium comprising: instructions to cause at least one computer to measure a preliminary altitude of a mobiie device from an altimeter: instructions to cause at least one computer to determine whether the preliminary altitude is a result of an altitude change or an environmental change from an output from at least one environmentai sensor disposed on the mobile device; and instructions to cause at least one computer to adjust the preliminary altitude to the actual aititude based on a result from the code to determine whether the preliminary aititude is a result of an altitude change or an environmentai change.
21 A computer program product , comprising: computer readable medium comprising: instructions to cause at ieast one computer to measure a preliminary altitude of a mobiie device from an altimeter; instructions to cause at ieast one computer to detect a change in pressure by a pressure sensor; instructions to cause at ieast one computer to detect a change in movement by a motion sensor: instructions to cause at ieast one computer to detect a change in temperature by a temperature sensor; instructions to cause at Seast one computer to determine whether the preliminary altitude is a result of an altitude change or an environmental change from the detected change of the motion sensor, the pressure sensor and the temperature sensor; and
instructions to cause at teas! one computer to adjust the preliminary altitude to the actuai aititude based on a result from the instructions to determine whether the preliminary altitude is a result of an altitude change or an environmental change.
METHOD AND APPARATUS FOR DETERMINING THE ALTITUDE
OF A MOBILE DEVICE
Claim of Priority under 35 U.S.C. §119
 The present Application for Patent claims priority to Provisional
Application No. 60/784,609 entitled, "Improved Altitude Determination in Mobile Devices/ 1 filed March 20 : 2006, which was assigned to the assignee hereof and hereby expressly incorporated by reference herein.
 The present invention relates to mobile devices and more particularly to a method and apparatus for accurately determining the altitude of a mobiie device.
 Position determination is an important and growing feature of cellular telephones and other handheld mobile devices. The most prevalent approach to determining location is to embed Global Positioning System (GPS) navigation receiver capability into the mobile device. However, GPS-based positioning has limitations. GPS systems cannot resolve altitude accurately, in some larger and more complex devices, the GPS systems have been augmented with barometric pressure based altimeters. This provides a significant improvement in attitude accuracy. However, a barometric altimeter responds to changes in pressure as well as changes in altitude. The altimeter can be fooled when a person enters or leaves climate-controlled rooms and buildings, or experiences
other changes in environmental pressure. The present invention minimizes the effects of environmental pressure changes on the determination of altitude.
 The ability to determine the location of a mobile device such as a cellular telephone is desirable for emergency calls, and for a variety of commercial purposes generally called Location Based Services. GPS-based position determination is based upon determining the distance that the signal travels from the GPS satellites, so it is not very accurate in indoor environments and other locations, where satellite signals can be blocked, distorted or reflected. In addition, because the satellites are usually high in the sky, the GPS-based position is less accurate in altitude, than in the horizontal position. This is why pressure-based altimeters have been added to more complex GPS systems in the past. However, the addition of altimeters has not been implemented in low-cost consumer mobile devices because of the cost and size. There are several other limitations to using these prior art solutions.
 Local atmospheric pressure can change for three reasons - change in true atmospheric pressure (weather-related barometric pressure changes), changes in the environment (going into a building where the ventilating system maintains a higher or lower pressure), and changes in altitude. Separating these other effects to determine true changes in altitude is difficult. Additionally, the sensitivity of low cost atmospheric pressure sensors varies with their temperature, so changes in temperature can be misinterpreted as changes in altitude.
 A solution to these problems is needed that would enable the use of atmospheric pressure sensors in mobile devices.
 The present method and apparatus minimizes the effects of eπvironmenta! pressure changes and temperature changes on the determination of altitude. Others have not solved this problem and consider it a limitation of pressure-based altimeters. The method and apparatus herein consists of combining the pressure information with information from dead reckoning sensors, such as accelerometers, gyroscopes, and geomagnetic sensors, and information from temperature sensors to separate what constitutes a change in altitude from a change in environmentai pressure or temperature.
 The simplest implementation consists of using the motion sensors to establish whether the device is at rest. If at rest, any changes in measured pressure must be environmental not altitude, and therefore should be used to recaiibrate the altimeter. This allows the system to automatically minimize barometric pressure (weather) and temperature changes on altitude measurements. A more sophisticated implementation includes algorithms that interpret a rapid pressure change without associated vertical motion as a movement from one environment to another (entering a pressurized building for example), and recalibrates the altimeter for the pressure change. Similarly, when vertical acceleration is detected, the rate of vertical acceleration can be compared to the rate of pressure change, and appropriate adjustments can be made to the reported altitude.
 An object of the present invention is to accurately determine the altitude of a mobile device taking into consideration environmental changes.
 An advantage of the present invention is that it is a simple and inexpensive method of determining what type of environmental change is occurring and separating it from actual altitude changes. The invention improves the effectiveness of a low cost pressure sensor used as an altitude sensor
 Other objects, advantages and novei features, and further scope of applicability of the present invention will be set forth in part in the detailed description to follow, taken in conjunction with the accompanying drawings, and in part will become apparent to those skilled in the art upon examination of the following, or may be teamed by practice of the invention. The objects and advantages of the invention may be realized and attained by means of the instrumentalities and combinations particularly pointed out in the appended claims,
BRiEF DESCRtPTiON OF THE DRAWINGS
 The accompanying drawings, which are incorporated into and form a part of the specification, illustrate several embodiments of the present invention and, together with the description, serve to explain the principles of the invention. The drawings are only for the purpose of illustrating a preferred embodiment of the invention and are not to be construed as limiting the invention, in the drawings:
 Fig. 1 is a block diagram depicting the components for the preferred embodiment.
 Fig. 2 is a flow chart showing the steps involved for determining the actual change in altitude of a typical portable device.
 As used herein, "mobile device" refers to a device such as a cellular telephone, other wireless communication device r laptop computer, or other mobile positioning device.
 Ai any given location, atmospheric pressure typically varies by up to 2% depending upon weather conditions (low pressure systems vs. high pressure systems). Local atmospheric pressure also varies in an exponential manner with altitude. Near the earth's surface the scale height ho is about 9 km. For a height, h, above a reference location, the pressure is given by;
Where p β is the atmospheric pressure at the reference location, if the atmospheric pressure were constant, a pressure sensor could be used to determine changes in altitude precisely. Since other factors influence pressure, this cannot be applied directly. For example, the weather- related variations in pressure of 42% are equivalent to a change in altitude of ±182 m. Clearly a pressure sensor alone cannot be used to resolve altitude to a resolution of 1 rn, as would be desired in identifying, for example, which floor of a building a person with a mobile device is on.
 To further complicate matters, buildings or rooms within buildings can be maintained at slight negative or positive pressure relative to the outside or to other rooms, in order to manage the flow of contaminants, or to manage heating and cooling. For example, a room that is slightly positive in pressure will always have air flowing out of it, if there is an opening or leak. This wouid prevent outside dust from getting in through the opening. This technique is commonly used in clean rooms used in manufacturing. Conversely, a containment room, such as where hazardous fumes or biological hazards are used is usually maintained at a slightly lower pressure than its surroundings, so that even if a leak occurs, air flows inward, keeping the hazard contained in the room. Beyond these specialized applications, pressure differences are used within buildings to maintain the flow of heated or cooled air in a planned direction to optimize temperature control in the building. Elevated pressure in a building is also used to keep dust smog, or cold air from entering a building when doors are opened. These deliberate pressure differences are typically about 0.05% of standard atmospheric pressure, which is equivalent to changes
in altitude of 4.4 m. This is much smailer than the weather-reiated changes, but stili significant, compared to the 3 m height of a typicai floor of a buiiding.
 in low cost pressure sensors, the scaie factor (volts/atmosphere) can also vary by up to 1 % as the temperature of the sensor changes. This can add an additional equivalent height variation of 90 m. Therefore, without compensation for these factors, it is not possible to use a pressure sensor to measure altitude with resolutions approaching 1 m.
 Using pressure sensors as altimeters dates back to at least the early days of aviation, but the technique has aiways reiied upon knowing what the current atmospheric pressure at ground Sevel was and then manuaiiy compensating for the difference between the measured pressure at ground level, and the standard pressure. Other aitimeters, such as those used by hikers , reiy upon the user setting the aititude back to the correct vaiue whenever he is at a known location. This temporariiy compensates for the weather- induced changes in the local pressure. These altimeters typicaily ciairn accuracies around 30-100 m r and are used outdoors, so the extraneous effects from temperature and environmentai pressure are not significant. No products currently exist that are designed to resolve altitude indoors, and to the resoiution of less than 3 m, so the issue of indoor pressures has not been addressed.
 The present invention provides a method for recognizing these various sources for change in the reading from a pressure sensor and isoiating those changes that truly correspond to a change in aititude. Information from other sensors is used to isoiate the source of the change in measured pressure, as shown in Fig. 1. Fig. 1 shows a typical system contained in a rnobiie device. The components of a typical system consist of a processor 10 for gathering and manipulating the data from the various sensors. Processor 10 can be a dedicated processor or a shared processor; both of these are weli known in the art. The sensors incSude one or more pressure sensors 12, one or more
temperature sensors 14 and one or more motion sensors 16. Additionally, a memory component 18 is required to store the sensor data to determine the changes of the predetermined environment over a period of time. Again this component can be a dedicated or shared component.
[00021 ] Fig. 2 is a flow chart showing the iogic that enters into the determination of the actual altitude change. As used herein the phrase "actual altitude" refers to a more accurate measure of altitude than that gained from a preliminary measurement by one or more pressure sensors. The first step of the process is to determine whether a change in pressure is measured 20. if the pressure did not change 22, the system default determines that the aititude has not changed and the process repeats until a change in pressure is detected, if a pressure change is detected 24, a determination is made whether the motion sensors measured movement 26 of the mobile device. Sf the motion sensors detect movement 28, the next step is to determine whether the movement is in a vertical direction 30. Sf the movement contains a vertical component 32, the pressure change is treated as an altitude change 34 and the process ends 36. If the motion sensors do not detect any verticai movement 56, the pressure change is deemed to be a movement to a different environment 58 and the process ends 36 without changing the aititude.
 If the motion sensors do not detect movement 38 ; the processor determines whether a change in temperature is detected by the temperature sensor 40. If there is no temperature change 42, the pressure change 24 is deemed to be a change in weather conditions 44 and the process ends 36. Since a temperature change in itself is not determinative, an additional safeguard is provided. If there is a temperature change 46, a determination is made whether the rate of change of the temperature corresponds to the rate of change of pressure 48. If these rates of change do not correspond 50, the pressure change 24 is deemed to be a change in weather conditions 44 and the process ends 36, For example, if the pressure sensor's reading is known to change by 0.1% per degree of temperature change, and the temperature
sensor reports a change in temperature of 10° over 10 minutes, then the pressure reading should change by about 1% over 10 minutes due to the temperature change. If the rate of change of pressure does not approximately equa! the rate of change that the temperature change should induce, the pressure change is due to something other than temperature.
 If the rate of change of the temperature corresponds to the rate of change in pressure 52, the pressure change is treated as temperature change and the sensors are calibrated accordingiy 54 and the process ends 36.
 The algorithm can be further refined by incorporating additional rate of change information. For example, weather changes are typically quite slow, exhibiting a gradual change over a period of hours, and then stabilizing at a new value. Passing through a door into a building or a pressurized room will occur in a matter of seconds, so the pressure vs. time profile would consist of two different constant values, with an abrupt transition between them in a matter of seconds. Similarly, an accelerometer that measured motion in the vertical direction would exhibit a particular acceleration vs. time profile. This would be different for a person ascending stairs , riding an escalator or an elevator, or driving up into the mountains. But in every case, the altitude derived from the pressure should exhibit a corresponding profile with time. The better they correspond, the more accurate one would expect the pressure-derived altitude to be. The present invention can also be used for altimeters that have temperature compensation bυiit in, thus obviating the need for a temperature sensor. The motion sensors can still be used to refine pressure based-altitude measurements.
 The methodologies described herein may be implemented by various means depending upon the application. For example, these methodologies may be implemented in hardware, firmware, software, or a combination thereof. For a hardware implementation, the processing units may be implemented within one or more application specific integrated circuits
(ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs) 1 programmable logic devices (PLDs), field programmable gate arrays (FPGAs) 1 processors, conf rollers, micro-controllers, microprocessors , electronic devices, other electronic units designed to perform the functions described herein, or a combination thereof.
 For a firmware and/or software implementation, the methodologies may be implemented with modules (e.g., procedures, functions, and so on) that perform the functions described herein. Any machine readable medium tangibly embodying instructions may be used in implementing the methodologies described herein. For example, software codes may be stored in a memory, such as a memory of a mobile device, and executed by a processor or microprocessor. Memory may be implemented within the processor or external to the processor. As used herein the term "memory" refers to any type of long term, short term, volatile, nonvolatile ! or other memory and is not to be limited to any particular type of memory or number of memories, or type of media upon which memory is stored.
 Although GPS navigation system is referenced throughout, positioning capability is not limited to this particular methodology. A mobile device may receive signals from navigation system satellites from Galileo (to be implemented in the future), GLONASS, NAVSTAR, GNSS, a system that uses satellites from a combination of these systems, or any future satellite positioning system ("SPS"), for use in determining position location. As used herein, an SPS will also be understood to include pseudoiite systems Assisted GPS techniques are also commonly used to determine mobile device position. Further, satellite positioning systems may be used alone or in combination with terrestrial positioning systems and methodologies.
 Although the invention has been described in detail with particular reference to these preferred embodiments, other embodiments can achieve the same results. Variations and modifications of the present invention will be
obvious to those skilled in the art and it is intended to cover in the appended ciaims ail such modifications and equivaieπts. The entire disclosures of ail references, appiications, patents, and publications cited above, are hereby incorporated by reference.